sql >> データベース >  >> RDS >> Sqlserver

SQLServer2008でのデータベーステーブルの暗号化

    ここにはさまざまなオプションがあります。

    • データに対称暗号化を使用できます:

      CREATE TABLE sales(...)

    対称鍵を作成する:

    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
    

    データの暗号化:

    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;
    

    データの復号化:

    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;
    
    • データに非対称暗号化を使用できます
    • 透過データ暗号化を使用できます すべてのデータベースファイルを暗号化する場合:

    マスターキーを作成します:

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

    証明書の作成:

    CREATE CERTIFICATE DEK_EncCert WITH SUBJECT = 'DEK Encryption Certificate'
    

    DEKを作成する:

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

    暗号化をオンにする:

    ALTER DATABASE MySecretDB SET ENCRYPTION ON
    
    • BitLockerを使用できます-完全なボリューム暗号化


    1. SQLでフィルターシステムを実装する方法は?

    2. Android:NullPointerExceptionフラグメント内のリストビューにデータベースをロードできません

    3. 文字列を整数にキャストし、PostgreSQLでのキャストでエラーが発生した場合に0にする方法を教えてください。

    4. 相関サブクエリでMySQLの移動平均を計算するにはどうすればよいですか?