我正在尝试将数据库从不同的服务器还原到我的本地主机服务器上。那个数据库是加密的(bak 文件),所以我必须解密它,这很好,我有所有的证书文件和密码,但是出于某种原因,我仍然收到以下错误:
The certificate, asymmetric key, or private key file is not valid or does not exist; or you do not have permissions for it.
这是我正在执行的代码:
CREATE CERTIFICATE [Certificate1]
FROM FILE = 'C:\Location of the certs'
WITH PRIVATE KEY (
FILE = 'C:\Location of the certs' ,
DECRYPTION BY PASSWORD = 'password'
);
Run Code Online (Sandbox Code Playgroud)
附注。我不是备份和恢复方面的专家。
我正在尝试在 SQL 2017 中配置备份加密,但遇到了一些问题。
我在一台机器上创建主密钥和证书没有问题。我在另一台机器上安装证书并读取备份也没有问题,但是,如果另一台机器运行的服务帐户与创建证书的服务帐户不同,这将不起作用。
以下是我正在采取的步骤(我也尝试恢复主密钥,但也会引发错误):
/* Server 1 */
/* Create the master key */
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'SomeRandomSecureString';
GO
/* Create the certificate to be used for backups */
CREATE CERTIFICATE BackupCert
WITH SUBJECT = 'Backup Encryption Certificate';
GO
/* Backup the master key */
BACKUP MASTER KEY TO FILE = '\\FileShare\DatabaseMasterKey_Master.key'
ENCRYPTION BY PASSWORD = 'SomeRandomPwd';
BACKUP CERTIFICATE BackupCert TO FILE = '\\FileShare\BackupCert.cer'
WITH PRIVATE KEY (FILE = '\\FileShareBackupCert.pvk',
ENCRYPTION BY …
Run Code Online (Sandbox Code Playgroud)