/ / SQL暗号化キーを作成できません-sql、sql-server、encryption、sql-server-2014

SQL暗号化キーを作成できません - sql、sql-server、encryption、sql-server-2014

新しい金融データベースのバックアップを暗号化しようとしています。これはまったく新しいデータベースであるため、以前は何も設定されていませんでした。MicrosoftSQL Server 2014で作業しています。

MSDNをフォローしようとしていましたが、役に立たないため、ページは互いにリンクしているだけで、自己参照の輪になってしまいます。痛い!

だから、ここに私がこれまでやったことがあります。

  1. saとしてログイン
  2. sp_configure "show advanced", 1
  3. sp_configure "EKM provider enabled", 1
  4. 証明書を作成しました

    CREATE CERTIFICATE fooBackup
    ENCRYPTION BY PASSWORD = "#########"
    WITH SUBJECT = "### Server Backup Key",
    EXPIRY_DATE = "20201031";
    GO
    
  5. 存在することを確認しました SELECT * FROM sys.certificates (存在します!)
  6. 暗号化キーを作成しようとしました

    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256
    ENCRYPTION BY SERVER CERTIFICATE fooBackup;
    GO
    

そして、これは私が立ち往生するところです。次のエラーが表示されます。

メッセージ15151、レベル16、状態1、行10

証明書「fooBackup」が存在しないか、権限がないため、見つかりません。

ここに示すように、対称キーと非対称キーでALTERおよびCONTROL権限を付与しようとしました http://bit.ly/1OcbYyt そして私が言ったように、私はSAとしてログインしています。それが存在することがわかります。

SQLで苦労している人を助けていただければ幸いです!

回答:

回答№1は0

私は最終的に、独自のパスワードの代わりにマスターキーを使用して証明書を作成することで、これを機能させました。

この手順は次のとおりです。

USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = "5tr0ngP@ssW0rd"
GO

OPEN MASTER KEY DECRYPTION BY PASSWORD = "5tr0ngP@ssW0rd"

CREATE CERTIFICATE MyDBcert
WITH SUBJECT = "The Cert For MyDB";
GO

USE MyDB;
GO

CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE MyDBcert;
GO

これが完了すると、データベースバックアップを暗号化するために証明書を自由に使用できます。