sql >> Database >  >> RDS >> Sqlserver

Databasetabellen versleutelen in SQL Server 2008

Je hebt hier verschillende opties.

  • U kunt symmetrische codering voor uw gegevens gebruiken:

    MAAK TAFELVERKOOP (...)

Creëer symmetrische sleutel:

CREATE CERTIFICATE cert_sales WITH SUBJECT = N'Sales certificate',
START_DATE = N'2009-01-01', EXPIRY_DATE = N'2018-12-31';

CREATE SYMMETRIC KEY symkey_sales WITH ALGORITHM = AES_256 
ENCRYPTION BY CERTIFICATE cert_sales

Gegevens versleutelen:

TRUNCATE TABLE sales;
OPEN SYMMETRIC KEY symkey_sales DECRYPTION BY CERTIFICATE cert_sales;
INSERT INTO sales() SELECT a, ENCRYPTBYKEY(Key_Guid(N'symkey_sales'), B) FROM T2;
CLOSE SYMMETRIC KEY symkey_sales;

Gegevens decoderen:

OPEN SYMMETRIC KEY symkey_sales DECRYPTION BY CERTIFICATE cert_sales;
SELECT a, CAST(DecryptByKey(B) as nvarchar(100)) FROM sales;
CLOSE SYMMETRIC KEY symkey_sales;
  • U kunt asymmetrische codering gebruiken voor uw gegevens
  • U kunt transparante gegevenscodering gebruiken voor het versleutelen van alle databasebestanden:

Hoofdsleutel aanmaken:

USE master
go
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'My$Strong$Password$123'

Certificaat maken:

CREATE CERTIFICATE DEK_EncCert WITH SUBJECT = 'DEK Encryption Certificate'

DEK maken:

USE MySecretDB
go
CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE DEK_EncCert

Encryptie inschakelen:

ALTER DATABASE MySecretDB SET ENCRYPTION ON
  • U kunt BitLocker gebruiken - volledige volumeversleuteling


  1. MySQL-query met JOIN die INDEX niet gebruikt

  2. Selecteer aparte rijen uit twee tabellen, sorteer op datum

  3. Refactor een PL/pgSQL-functie om de uitvoer van verschillende SELECT-query's te retourneren

  4. Kolomnaam wordt herhaald in zoekopdrachtresultaten