我正在使用的环境是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_)是已从帐户中停用的用户。我通过在“高级安全设置” as shown in the answer to this question中将所有者更新为我的用户来将所有者更新为我的帐户。
然后我重新运行查询,它开始工作了。
https://dba.stackexchange.com/questions/112368/sql-server-data-folder-access-rights