无法创建 SQL 加密密钥

Cannot create SQL Encryption Key

我正在尝试为我们的新财务数据库加密备份。这是一个全新的数据库,因此之前绝对没有设置任何内容。我在 Microsoft SQL Server 2014 工作。

一直在尝试关注 MSDN,但没有帮助,页面只是相互 link 并最终陷入自我引用圈。痛!

所以,这是我到目前为止所做的。

  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
    

这就是我卡住的地方。我收到以下错误:

Msg 15151, Level 16, State 1, Line 10

Cannot find the certificate 'fooBackup', because it does not exist or you do not have permission.

我已尝试授予对对称和非对称密钥的更改和控制权限,如此处所示http://bit.ly/1OcbYyt,正如我所说,我以 SA 身份登录。我可以看到它存在。我只是……迷路了。

对于在 SQL 中苦苦挣扎的人的任何帮助,我们将不胜感激!

我最终通过使用主密钥而不是它自己的密码创建证书来实现它。

步骤如下:

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

完成后,您就可以自由使用证书来加密您的数据库备份了。