none
請教關於SQL Server使用Always Encrypted的問題 RRS feed

  • 問題

  • 測試環境如下

    SQL Server 2019

    SQL Server Management Studio 18.5

    未使用安全的記憶體保護區

    ----------------------------------------------------

    使用

    CREATE TABLE Customers (  
        CustName nvarchar(60)   
            COLLATE  Latin1_General_BIN2 ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = CEK_Auto1,  
            ENCRYPTION_TYPE = RANDOMIZED,  
            ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'),   
    );

    執行成功,建立出有確定性加密的CustName 欄位

    -----------------------------------------------------------------------------------------------

    但改使用

    CREATE TABLE Customers (  
        CustName nvarchar(60)  
    );

    ALTER TABLE [Customers] ALTER COLUMN CustName nvarchar(60)  COLLATE  Latin1_General_BIN2
      ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = CEK_Auto1,  
            ENCRYPTION_TYPE = DETERMINISTIC,  
            ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256')

    出現 "無法更改資料行 'CustName'。陳述式嘗試使用安全的記憶體保護區就地為資料行加密、解密或重新加密,但資料行的目前或 (和) 目標資料行加密金鑰未能使用記憶體保護區。"

    想請問未使用安全的記憶體保護區的情形下,是無法透過指令改變已建好欄位的加密?

    還是我有遺漏甚麼?

    2022年6月22日 上午 02:48