无法创建 SQL 加密密钥
Cannot create SQL Encryption Key
我正在尝试为我们的新财务数据库加密备份。这是一个全新的数据库,因此之前绝对没有设置任何内容。我在 Microsoft SQL Server 2014 工作。
一直在尝试关注 MSDN,但没有帮助,页面只是相互 link 并最终陷入自我引用圈。痛!
所以,这是我到目前为止所做的。
- 以 sa 身份登录
sp_configure 'show advanced', 1
sp_configure 'EKM provider enabled', 1
已创建证书
CREATE CERTIFICATE fooBackup
ENCRYPTION BY PASSWORD = '#########'
WITH SUBJECT = '### Server Backup Key',
EXPIRY_DATE = '20201031';
GO
- 检查它是否存在
SELECT * FROM sys.certificates
(它确实存在!)
已尝试创建加密密钥
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
完成后,您就可以自由使用证书来加密您的数据库备份了。
我正在尝试为我们的新财务数据库加密备份。这是一个全新的数据库,因此之前绝对没有设置任何内容。我在 Microsoft SQL Server 2014 工作。
一直在尝试关注 MSDN,但没有帮助,页面只是相互 link 并最终陷入自我引用圈。痛!
所以,这是我到目前为止所做的。
- 以 sa 身份登录
sp_configure 'show advanced', 1
sp_configure 'EKM provider enabled', 1
已创建证书
CREATE CERTIFICATE fooBackup ENCRYPTION BY PASSWORD = '#########' WITH SUBJECT = '### Server Backup Key', EXPIRY_DATE = '20201031'; GO
- 检查它是否存在
SELECT * FROM sys.certificates
(它确实存在!) 已尝试创建加密密钥
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
完成后,您就可以自由使用证书来加密您的数据库备份了。