【发布时间】:2019-10-22 16:42:03
【问题描述】:
我使用的环境是托管在 Azure 上的 VM。
我最近在该 VM 上创建了一个名为 TESTINSTANCE 的新 SQL Server 实例(除了现有的默认实例之外)。我使用了单独的服务帐号。
随后我需要将数据库备份恢复到新实例。 在源中创建了主密钥和证书。
所以在恢复之前,我认为需要在我的目标实例 (TESTINSTANCE) 中重新创建该密钥。
但是,当我尝试以下操作时:
-- Create a database master key on the destination instance of SQL Server.
USE master;
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'value_a';
GO
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'value_a';
go
RESTORE MASTER KEY
FROM FILE = 'C:\folder_\masterdb_masterkey'
DECRYPTION BY PASSWORD = 'value_b'
ENCRYPTION BY PASSWORD = 'value_a';
GO
我得到的是以下错误消息:
主密钥文件不存在或格式无效。
我认为这可能是由于我在安装 TESTINSTANCE 期间创建的服务帐户的权限造成的。
但是,当我检查下面页面的 Windows 权限和权限部分时,我的理解是 TESTINSTANCE 服务帐户应该获得与默认帐户相同的权限。
所以我不确定为什么它无法访问 C 盘中的那个位置。 为了确认,该文件确实存在于 'C:\folder_\masterdb_masterkey'
【问题讨论】:
-
服务帐号是否有权访问 C:\folder_\masterdb_masterkey?
-
@alexherm 感谢这个问题,它帮助我找到了根本原因(如下)。
标签: sql-server database-administration sql-server-2017