För att hantera datasäkerheten som har säkerhetskopierats av filsystemet som en databasbackupfiler, tillhandahåller SQL Server funktionen för säkerhetskopiering. I den här artikeln kommer vi att prata om krypteringsalternativ som finns tillgängliga i SQL Server för säkerhetskopiering av databas. Vi kommer att titta närmare på användningsdetaljerna, fördelarna och rekommenderade metoder för att kryptera SQL Server-databassäkerhetskopiering under säkerhetskopieringsprocessen.
Vad är kryptering av databassäkerhetskopiering?
Behovet av att hålla data säker växer dramatiskt. Tillsammans med data måste du vara säker på att dina databasbackupfiler också är säkrade, särskilt de på ett serverfilsystem. Data i de inbyggda SQL Server-säkerhetskopierna lagras som vanlig text i filsystemet. Du kan läsa den utan ansträngning med hjälp av en textredigerare.
Beroende på vilka datatyper som används i dina tabeller är vissa data mycket lättare att läsa än andra. Följande bild visar säkerhetskopian som öppnats i Anteckningsblockets textredigerare:
Som du kan se är T-SQL-koden synlig och lätt att läsa. Men när vi väl har skapat säkerhetskopian med en kryptering kommer ingen att ha en chans att komma under huven.
Följande bild visar samma AdventureWorks2014.bak med en kryptering.
Från och med SQL Server 2014 kan databasmotorn kryptera data samtidigt som en säkerhetskopia skapas. Du kan ange krypteringsalgoritmen och krypteringen, antingen ett certifikat eller en asymmetrisk nyckel, samtidigt som du skapar en säkerhetskopia. Säkerhetskopieringskrypteringsfunktionen förbättrar säkerheten och fungerar i alla domäner där SQL Server själv kan användas.
Vad krävs?
För att kryptera databasbackupen måste du ange en krypteringsalgoritm och en kryptering. Det finns två krypteringsalternativ som stöds:
- Krypteringsalgoritm:AES_128, AES_192, AES_256 och Triple_DES_3Key
- Krypterare:Ett certifikat eller asymmetrisk nyckel
Om du av misstag tappar bort certifikatet eller den asymmetriska nyckeln kommer du aldrig att ha en chans att återställa säkerhetskopian. Det är därför mycket viktigt att förvara certifikatet eller den asymmetriska nyckeln på en säker plats.
Fördelar med kryptering av säkerhetskopiering av databas
- Hjälper till att säkra data.
- Kan appliceras på databaser som är krypterade med hjälp av Transparent Data Encryption (TDE).
- Stöds för säkerhetskopior skapade av SQL Server-hanterad säkerhetskopiering till Microsoft Azure som ger extra säkerhet för säkerhetskopiering utanför platsen.
- Stöder många krypteringsalgoritmer upp till AES 256 bitar. Detta låter dig välja en algoritm som uppfyller dina krav.
- Möjligt att integrera krypteringsnycklar med EKM-leverantörer (Extended Key Management).
Ändringar i systemtabeller
När du skapar den krypterade säkerhetskopian registreras viss information i MSDB systemdatabas:nyckelalgoritm, krypteringstyp och krypteringstumavtryck som används.
Säkerhetskopieringen Tabellen innehåller information för varje säkerhetskopieringsuppsättning. En säkerhetskopia innehåller säkerhetskopian för en enda framgångsrik säkerhetskopiering.
Följande kolumner:key_algorithm , encryptor_thumprint , encryptor_type av denna DMV lagra information om huruvida säkerhetskopian är krypterad, krypteringstypen och krypteringstumavtrycket.
VÄLJ TOP 5 namn, nyckel_algoritm, encryptor_thumbprint, encryptor_typeFROM msdb.dbo.backupset AS backupset med (NOLOCK)WHERE skriv IN ('D', 'I') OCH database_name ='AdventureWorks2014'ORDER BY backupset.backup_start_date före>Här är vad du kommer att se:
För att få mer information om backupsettabellen, läs följande MSDN-dokumentationssida:backupset (Transact-SQL)
backupmediaset Tabellen innehåller information för varje backup-mediauppsättning. Kolumnen is_encrypted anger om säkerhetskopian är krypterad eller inte. 0 – ej krypterad och 1 – krypterad. Inledningsvis är detta värde satt till NULL vilket indikerar icke-krypterad backupmediaset.
VÄLJ TOP 5 media_set_id, is_encrypted, is_compressedFROM msdb.dbo.backupmediaset AS mediaset med (NOLOCK)ORDER BY mediaset.media_set_id DESCGOResultatuppsättningen:
Krypteringsmetoder för säkerhetskopiering av databas
1. Med hjälp av dbForge Studio för SQL Server
Det är möjligt att skapa kryptering av databassäkerhetskopiering med hjälp av SSMS, men personligen föredrar jag bForge Studio för SQL Server — en kraftfull IDE för SQL Server-hantering, administration, utveckling, datarapportering och analys. Denna IDE är som en schweizisk kniv för databasutvecklare. Verktyget tillhandahåller viktiga funktioner som är insvept i ett väldesignat och intuitivt GUI. För att bekanta dig med viktiga funktioner, se dbForge Studio for SQL Server – Översikt introduktionsvideo (04:03 min):
När du har laddat ner och installerat verktyget måste du skapa databasanslutningen.
Observera att funktionen för säkerhetskopiering av kryptering introduceras i SQL Server 2014. SQL Server Express stöder inte kryptering under säkerhetskopiering.
1. När du har anslutit till en nödvändig SQL Server-instans, i Databasutforskaren klickar du på servernamnet för att expandera serverträdet.
2. Högerklicka på en obligatorisk databas, peka på Uppgifter och klicka sedan på Säkerhetskopiera . Dialogrutan Säkerhetskopiera databas visas.
I Anslutning listrutan, kontrollera anslutningens namn. Du kan valfritt välja en annan anslutning från listan.
3. Klicka på Nästa för att fortsätta med Mediealternativ .
Krypteringsalternativet är inaktiverat om du väljer att lägga till ett befintligt alternativ för säkerhetskopiering på Media Options-sidan i Backup Database-guiden. Välj säkerhetskopiering till en ny mediauppsättning och radera alla befintliga säkerhetskopior.
Skapa certifikatet/nyckeln innan du startar processen. Certifikat eller asymmetrisk nyckel som skapades innan guiden för säkerhetskopiering av databas initierades kommer att listas i rullgardinsmenyn.Välj Säkerhetskopiera till en ny mediauppsättning och radera alla befintliga säkerhetskopieringsuppsättningar möjlighet att skapa en ny säkerhetskopia. Ange ett namn i Medieuppsättningens namn textrutan och, valfritt, beskriv mediauppsättningen i Medieuppsättningsbeskrivning textruta.
4. Klicka på Nästa för att fortsätta med Säkerhetskopieringsalternativ .
På den här sidan väljer du alternativet Kryptera säkerhetskopiering. Välj algoritmen och certifikatet eller asymmetrisk nyckel. Klicka på Säkerhetskopiera . Processen tar flera sekunder i mitt fall.
2. Använda Transact-SQL-satser
Vi kommer att använda BACKUP DATABASE för att skapa en databassäkerhetskopia och BACKUP LOG för att skapa en backupfil för transaktionslogg.
Fullständig säkerhetskopiering av databas
Denna typ av säkerhetskopiering säkerhetskopierar hela databasen. Den inkluderar en del av transaktionsloggen så att hela databasen kan återställas efter att en fullständig säkerhetskopia av databasen har återställts.
Följande kod skapar en fullständig databas krypterad säkerhetskopiering på den angivna platsen med det angivna certifikatet och krypteringsalgoritmen.
BACKUP DATABAS AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014.bak'WITH NAME =N'AdventureWorks2014, Compressed, Encrypted, Full', FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, 5 KRYPTERING( ALGORITM =AES_256, SERVERCERTIFIKAT =Cert1)GOObs, om certifikatet som används för kryptering aldrig har säkerhetskopierats, visas följande varning när säkerhetskopieringen är klar. Se till att du tar en säkerhetskopia av certifikatet tillsammans med den privata nyckeln som är kopplad till certifikatet:
Varning :Certifikatet som används för att kryptera databaskrypteringsnyckeln har inte säkerhetskopierats. Du bör omedelbart säkerhetskopiera certifikatet och den privata nyckel som är kopplad till certifikatet. Om certifikatet någon gång blir otillgängligt eller om du måste återställa eller bifoga databasen på en annan server måste du ha säkerhetskopior av både certifikatet och den privata nyckeln annars kommer du inte att kunna öppna databasen.
Säkerhetskopiering av differentiell databas
När du skapar denna typ av säkerhetskopia består databasen eller filsäkerhetskopian av endast de delar av databasen eller filen som ändrats sedan den senaste fullständiga säkerhetskopian. Dessutom tar denna typ av säkerhetskopia vanligtvis mindre utrymme än en fullständig säkerhetskopia.
Följande kod skapar en differentiell databas krypterad säkerhetskopiering på den angivna platsen med det angivna certifikatet och krypteringsalgoritmen.
BACKUP DATABAS AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak'WITH NAME =N'AdventureWorks2014, Compressed, Encrypted, Differential', FORMAT, INIT, SKIP, NORAD, STA, NORAD, STA, KOMP. DIFFERENTIAL,KRYPTERING(ALGORITHM =AES_256, SERVERCERTIFIKAT =Cert1)GOSäkerhetskopiering av databastransaktionslogg
SQL Server-databasen innehåller en eller flera transaktionsloggfiler, förutom datafiler, som registrerar alla transaktioner och databasändringar som görs av varje transaktion. Transaktionsinformationen samlas endast in i databaserna där databasåterställningsläget är inställt på fullständig återställning eller bulkloggas återhämtning.
Följande kod skapar databastransaktionslogg krypterad säkerhetskopiering på den angivna platsen med det angivna certifikatet och krypteringsalgoritmen.
BACKUP-LOGG AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_LOG.bak'WITH NAME =N'AdventureWorks2014, Compressed, Encrypted, TLog', FORMAT, INIT, SKIP, STATRESTION =5, ENCMRPRESTION(, ENCRITH) AES_256, SERVERCERTIFIKAT =Cert1)GO3. Använder PowerShell
SQL Server 2014 låter dig säkerhetskopiera databasen med Windows Powershell. Följande kod skapar krypteringsalternativen och använder det som ett parametervärde i kommandoletten Backup-SqlDatabase:
$ kryptering =new-sqlbackupencryptionoption –algoritm aes256 –encryptortype servercertificate –encryptorname “cert1” Backup-sqlDatabase –ServerInstance Server_name –DataBase “AdventureWorks2 $encryptionOptionJämför vi ovan nämnda tillvägagångssätt råder det inga tvivel om att det är ganska lätt att skapa krypterade databassäkerhetskopior när du har rätt verktyg, som dbForge Studio for SQL Server från Devart.
Ytterligare läsning
Min vän, Pinal Dave – SQL Server-teknikentusiast, oberoende konsult, författare till olika SQL Server-böcker och Pluralsight-kurser, skrev en utmärkt artikel som jag skulle föreslå att du läser vidare:SQL SERVER – A Practical Use of Backup Encryption