Heim  >  Artikel  >  Datenbank  >  So verschlüsseln Sie eine Tabelle in SQL

So verschlüsseln Sie eine Tabelle in SQL

清浅
清浅Original
2019-05-11 13:08:594534Durchsuche

So verschlüsseln Sie SQL-Tabellen: Zuerst die Umgebung testen, dann den Datenbank-Hauptschlüssel erstellen und dann die Daten verschlüsseln;

So verschlüsseln Sie eine Tabelle in SQL

SQL Server So richten Sie die Tabellenverschlüsselung ein

SQL Server unterstützt Verschlüsselung auf Datenbankebene (TDE) und Spalten Verschlüsselung auf Ebene der Datenverschlüsselung. Die Verschlüsselung auf Datenbankebene wird in der Datenbank durchgeführt, die für das Programm transparent ist, und während des Entwicklungsprozesses sind keine zusätzlichen Vorgänge erforderlich. Im Vergleich zur Verschlüsselung auf Datenbankebene ist der Datenverschlüsselungsprozess auf Spaltenebene etwas mühsam und das Programm muss einige zusätzliche Vorgänge ausführen. Die folgende Abbildung zeigt die Verschlüsselungshierarchie von SQL Server. Es ist ersichtlich, dass die Verschlüsselung der oberen Ebene die Verschlüsselung seiner Unterebenen schützt in der Abbildung zum Verschlüsseln/Entschlüsseln von Daten.

So verschlüsseln Sie eine Tabelle in SQL

(1) Beschreibung der Testumgebung

Testen Sie mit SQL Server 2012 R2 und erstellen Sie die folgende Datentabelle:

--Erstellen Sie eine Benutzertabelle zum Testen

CREATE TABLE TBLUser 
(    
    Name             nvarchar(30),     
    Password         varbinary(1000),    
)
GO

So verschlüsseln Sie eine Tabelle in SQL

(2) Erstellen Sie einen Datenbank-Hauptschlüssel

Datenbank-Hauptschlüssel in Unter dem Dienst-Hauptschlüssel befindet sich die Verschlüsselung wird vom Diensthauptschlüssel durchgeführt. Dies ist ein Schlüssel auf Datenbankebene, der zur Verschlüsselung für die Erstellung von Zertifikaten auf Datenbankebene oder asymmetrischen Schlüsseln verwendet werden kann. Jede Datenbank kann nur einen Datenbankhauptschlüssel haben, der durch T-SQL-Anweisungen erstellt wird. Der spezifische Code lautet wie folgt:

CREATE MASTER KEY ENCRYPTION BY PASSWORD ='passW@ord'
GO

Image 025.png

(3) Zertifikat erstellen

Erstellen Sie ein symmetrisches Schlüsselzertifikat für die Verschlüsselung, das spezifische Der Code lautet wie folgt:

CREATE CERTIFICATE TestCert with SUBJECT = 'Test Certificate'
GO

Image 026.png

(4) Erstellen Sie einen symmetrischen geheimen Schlüssel

Wie aus der SQL Server-Verschlüsselung ersichtlich ist Hierarchie, symmetrische Schlüssel Es kann durch ein Passwort oder andere symmetrische Schlüssel, asymmetrische Schlüssel und Zertifikate erstellt werden. In diesem Artikel wird ein Zertifikat verwendet, um einen symmetrischen geheimen Schlüssel zum Testen zu erstellen. Der spezifische Code lautet wie folgt:

CREATE SYMMETRIC KEY TestSymmetric WITH ALGORITHM = AES_256
 ENCRYPTION BY CERTIFICATE TestCert 
GO

Image 027.png

(5) Verschlüsselte Daten

Öffnen Sie zuerst den symmetrischen geheimen Schlüssel des Zertifikats, verschlüsseln Sie die Daten dann mit der Funktion ENCRYPTBYKEY und schließen Sie dann den symmetrischen geheimen Schlüssel. Der spezifische Code lautet wie folgt:

OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert;
INSERT INTO TBLUser values('张三', ENCRYPTBYKEY(Key_Guid(N'TestSymmetric'), '123456'));
CLOSE SYMMETRIC KEY TestSymmetric;
GO

Image 028.png

(6) Sehen Sie sich die verschlüsselten Daten an

Fragen Sie die verschlüsselten Daten direkt in SQL ab. Ich habe gesehen, dass der Inhalt des Passworts eine Folge unleserlicher Hexadezimalzeichen war.

SELECT * FROM TBLUser
GO

Image 029.png

(7) Daten entschlüsseln

Öffnen Sie zuerst den symmetrischen geheimen Schlüssel des Zertifikats und verwenden Sie dann die Funktion DecryptByKey, um die Daten zu entschlüsseln , und schließen Sie es nach Abschluss. Symmetrischer Schlüssel. Der spezifische Code lautet wie folgt:

OPEN SYMMETRIC KEY TestSymmetric DECRYPTION BY CERTIFICATE TestCert;
SELECT Name, CAST(DecryptByKey(password) as varchar(100)) Password FROM TBLUser;
CLOSE SYMMETRIC KEY TestSymmetric;
GO

Image 030.png

Das obige ist der detaillierte Inhalt vonSo verschlüsseln Sie eine Tabelle in SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn