For at administrere datasikkerheden, der er blevet sikkerhedskopieret af filsystemet som en database backup-filer, leverer SQL Server backup-krypteringsfunktionen. I denne artikel vil vi tale om krypteringsmuligheder, der er tilgængelige i SQL Server til sikkerhedskopiering af databaser. Vi vil se nærmere på brugsdetaljerne, fordelene og anbefalede fremgangsmåder til kryptering af SQL Server-databasesikkerhedskopiering under sikkerhedskopieringsprocessen.
Hvad er database backup-kryptering?
Behovet for at holde data sikre vokser dramatisk. Sammen med data skal du være sikker på, at dine databasebackupfiler også er sikret, især dem på et serverfilsystem. Dataene inde i de oprindelige SQL Server-sikkerhedskopifiler gemmes som almindelig tekst på filsystemet. Du kan læse det uden besvær ved hjælp af en teksteditor.
Afhængigt af de datatyper, der bruges i dine tabeller, er nogle data meget lettere at læse end andre. Følgende billede viser backup-filen, der er åbnet i Notepad-teksteditoren:
Som du kan se, er T-SQL-koden synlig og let at læse. Men når først vi har oprettet sikkerhedskopien med en kryptering, vil ingen have en chance for at komme under hætten.
Følgende billede viser den samme AdventureWorks2014.bak med en kryptering.
Fra og med SQL Server 2014 kan databasemotoren kryptere dataene, mens der oprettes en sikkerhedskopi. Du kan angive krypteringsalgoritmen og kryptering, enten et certifikat eller en asymmetrisk nøgle, mens du opretter en sikkerhedskopi. Sikkerhedskopieringskrypteringsfunktionen forbedrer sikkerheden og fungerer i ethvert domæne, hvor SQL Server selv kan bruges.
Hvad kræves?
For at kryptere databasesikkerhedskopieringen skal du angive en krypteringsalgoritme og en kryptering. Der er to understøttede krypteringsmuligheder:
- Krypteringsalgoritme:AES_128, AES_192, AES_256 og Triple_DES_3Key
- Krypter:Et certifikat eller en asymmetrisk nøgle
Hvis du ved et uheld mister certifikatet eller den asymmetriske nøgle, vil du aldrig have en chance for at gendanne backupfilen. Det er derfor meget vigtigt at opbevare certifikatet eller den asymmetriske nøgle på et sikkert sted.
Fordele ved kryptering af backup af databaser
- Hjælper med at sikre data.
- Kan anvendes på de databaser, der er krypteret ved hjælp af Transparent Data Encryption (TDE).
- Understøttet til sikkerhedskopier oprettet af SQL Server-administreret sikkerhedskopiering til Microsoft Azure, der giver ekstra sikkerhed til sikkerhedskopiering uden for webstedet.
- Understøtter adskillige krypteringsalgoritmer op til AES 256 bit. Dette giver dig mulighed for at vælge en algoritme, der opfylder dine krav.
- Muligt at integrere krypteringsnøgler med EKM-udbydere (Extended Key Management).
Ændringer i systemtabeller
Mens du opretter den krypterede sikkerhedskopi, registreres nogle oplysninger i MSDB systemdatabase:den anvendte nøglealgoritme, krypteringstype og krypterings-thumbprint.
Sikkerhedskopieringen tabel indeholder en information for hvert sikkerhedskopieringssæt. Et sikkerhedskopieringssæt indeholder sikkerhedskopien til en enkelt, vellykket sikkerhedskopieringsoperation.
Følgende kolonner:key_algorithm , encryptor_thumprint , encryptor_type af denne DMV gemmer oplysninger om, hvorvidt sikkerhedskopien er krypteret, krypteringstypen og krypteringens tommelfingeraftryk.
VÆLG TOP 5 navn, nøglealgoritme, encryptor_thumbprint, encryptor_typeFROM msdb.dbo.backupset AS backupsæt med (NOLOCK)WHERE skriv IN ('D', 'I') OG database_name ='AdventureWorks2014'ORDER BY backupset.backup_start_date før>Her er, hvad du vil se:
For at få flere oplysninger om backupsæt-tabellen, læs følgende MSDN-dokumentationsside:backupset (Transact-SQL)
backupmediesættet tabel indeholder en information for hvert sikkerhedskopieringsmediesæt. Kolonnen is_encrypted angiver, om sikkerhedskopien er krypteret eller ej. 0 – ikke-krypteret og 1 – krypteret. Til at begynde med er denne værdi sat til NULL, hvilket indikerer ikke-krypteret backupmediesæt.
VÆLG TOP 5 media_set_id, is_encrypted, is_compressedFROM msdb.dbo.backupmediaset AS mediaset with (NOLOCK)ORDER BY mediaset.media_set_id DESCGOResultatsættet:
Krypteringsmetoder for databasesikkerhed
1. Med hjælp fra dbForge Studio til SQL Server
Det er muligt at oprette database backup-kryptering ved hjælp af SSMS, men jeg foretrak personligt bForge Studio til SQL Server - en kraftfuld IDE til SQL Server-administration, administration, udvikling, datarapportering og analyse. Denne IDE er som en schweizisk kniv til databaseudviklere. Værktøjet giver væsentlige funktioner, der er pakket ind i en veldesignet og intuitiv GUI. For at blive bekendt med nøglefunktioner, se dbForge Studio til SQL Server – Oversigt introduktionsvideo (04:03 min):
Når du har downloadet og installeret værktøjet, skal du oprette databaseforbindelsen.
Bemærk, at funktionen til backup-kryptering er introduceret i SQL Server 2014. SQL Server Express understøtter ikke kryptering under backup.
1. Når du har oprettet forbindelse til en påkrævet SQL Server-instans, i Database Explorer , klik på servernavnet for at udvide servertræet.
2. Højreklik på en påkrævet database, peg på Opgaver, og klik derefter på Sikkerhedskopiér . Dialogboksen Back Up Database vises.
I Forbindelse listeboks, tjek forbindelsesnavnet. Du kan valgfrit vælge en anden forbindelse fra listen.
3. Klik på Næste for at fortsætte med Medieindstillinger .
Krypteringsindstillingen er deaktiveret, hvis du vælger at føje til eksisterende sikkerhedskopieringsindstilling på siden Medieindstillinger i guiden Backup Database. Vælg sikkerhedskopiering til et nyt mediesæt, og slet alle eksisterende sikkerhedskopieringssæt.
Opret certifikatet/nøglen, før du starter processen. Certifikat eller asymmetrisk nøgle, der er oprettet før start af backupdatabaseguiden, vil blive vist i rullemenuen.Vælg Sikkerhedskopier til et nyt mediesæt, og slet alle eksisterende sikkerhedskopieringssæt mulighed for at oprette en ny sikkerhedskopi. Indtast et navn i Mediesætnavnet tekstboks, og beskriv eventuelt mediesættet i Mediesætbeskrivelsen tekstboks.
4. Klik på Næste for at fortsætte med Sikkerhedskopieringsindstillinger .
På denne side skal du vælge indstillingen Krypter sikkerhedskopiering. Vælg algoritmen og certifikatet eller den asymmetriske nøgle. Klik på Sikkerhedskopiér . Processen tager flere sekunder i mit tilfælde.
2. Brug af Transact-SQL-sætninger
Vi vil bruge BACKUP DATABASE sætning for at oprette en databasesikkerhedskopi og BACKUP LOG for at oprette en backupfil for transaktionslog.
Fuld database backup
Denne type sikkerhedskopiering sikkerhedskopierer hele databasen. Den inkluderer en del af transaktionsloggen, så den fulde database kan gendannes, efter at en komplet databasesikkerhedskopi er gendannet.
Følgende kode opretter en fuld database krypteret sikkerhedskopiering på den angivne placering ved hjælp af det angivne certifikat og krypteringsalgoritme.
BACKUP DATABASE AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014.bak'WITH NAME =N'AdventureWorks2014, Komprimeret, Krypteret, Fuld', FORMAT, INIT, SKIP, NOREWIND, COMP, RES. KRYPTERING( ALGORITME =AES_256, SERVERCERTIFIKAT =Cert1)GOBemærk, hvis certifikatet, der bruges til kryptering, aldrig er blevet sikkerhedskopieret, opstår følgende advarsel, når sikkerhedskopieringen er fuldført. Sørg for at tage en sikkerhedskopi af certifikatet sammen med den private nøgle, der er knyttet til certifikatet:
Advarsel :Certifikatet, der bruges til at kryptere databasekrypteringsnøglen, er ikke blevet sikkerhedskopieret. Du bør straks sikkerhedskopiere certifikatet og den private nøgle, der er knyttet til certifikatet. Hvis certifikatet nogensinde bliver utilgængeligt, eller hvis du skal gendanne eller vedhæfte databasen på en anden server, skal du have sikkerhedskopier af både certifikatet og den private nøgle, ellers vil du ikke være i stand til at åbne databasen.
Differentiel database backup
Mens du opretter denne type sikkerhedskopi, består database- eller filsikkerhedskopien kun af de dele af databasen eller filen, der er ændret siden den sidste fulde sikkerhedskopi. Desuden fylder denne type backup normalt mindre end en fuld backup.
Følgende kode opretter en differentiel database krypteret backup på den angivne placering ved hjælp af det angivne certifikat og krypteringsalgoritme.
BACKUP DATABASE AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_DIFF.bak'WITH NAME =N'AdventureWorks2014, Compressed, Encrypted, Differential', FORMAT, INIT, SKIP, NORAD, RES, IND, NOR DIFFERENTIAL,KRYPTERING(ALGORITHM =AES_256, SERVERCERTIFIKAT =Cert1)GOSikkerhedskopiering af databasetransaktionslog
SQL Server-databasen indeholder en eller flere transaktionslogfiler, ud over datafiler, der registrerer alle transaktioner og databaseændringer foretaget af hver transaktion. Transaktionsoplysningerne indsamles kun i de databaser, hvor databasegendannelsestilstand er indstillet til fuld gendannelse eller masselogget genopretning.
Følgende kode opretter databasetransaktionslog krypteret backup på den angivne placering ved hjælp af det angivne certifikat og krypteringsalgoritme.
BACKUP LOG AdventureWorks2014TO DISK ='D:\DBMSSQLX64\Backup\AdventureWorks2014_LOG.bak'WITH NAME =N'AdventureWorks2014, Compressed, Encrypted, TLog', FORMAT, INIT, SKIP, STATSTION =5, KOMPRESTION =5, KOMP. AES_256, SERVERCERTIFIKAT =Cert1)GO3. Brug af PowerShell
SQL Server 2014 giver dig mulighed for at sikkerhedskopiere databasen ved hjælp af Windows Powershell. Følgende kode opretter krypteringsmulighederne og bruger den som en parameterværdi i Backup-SqlDatabase-kommandoletten:
$encryptionOption=New-SqlBackupEncryptionOption –Algorithm Aes256 –EncryptorType ServerCertificate –EncryptorName “Cert1”Backup-SqlDatabase –ServerInstance Server_name –Database “AdventureWorks2014” –SikkerhedskopiMSFile “QL.WbaksOption” –BackupMSFile “QL.WBakup4Options”QL.WBakuption\6DX4Option” $encryptionOptionVed at sammenligne ovennævnte tilgange er der ingen tvivl om, at det er en ret nem opgave at oprette krypterede databasesikkerhedskopier, når du har det rigtige værktøj, såsom dbForge Studio til SQL Server fra Devart.
Yderligere læsning
Min ven, Pinal Dave – SQL Server-teknologientusiast, uafhængig konsulent, forfatter til forskellige SQL Server-bøger og Pluralsight-kurser, skrev en fremragende artikel, som jeg vil anbefale dig at læse videre:SQL SERVER – A Practical Use of Backup Encryption