SQL Server“找不到对称密钥'DataFilePasswordKey'",尽管我创建了它并且我是db_owner

c2e8gylq  于 2022-12-26  发布在  SQL Server
关注(0)|答案(1)|浏览(232)

在SQL Server 2019企业版中,我在不同的服务器上拥有数据库的开发、测试和生产示例。我在这三个服务器上都担任db_owner角色。我在每个服务器上创建了主密钥、证书和对称密钥,目的是加密一个表中的一列。

CREATE MASTER KEY ENCRYPTION
BY PASSWORD = '[password]'
GO

CREATE CERTIFICATE DataFileCert
   WITH SUBJECT = 'Data File Info';
GO

CREATE SYMMETRIC KEY DataFileKey
    WITH ALGORITHM = AES_256
    ENCRYPTION BY CERTIFICATE DataFileCert;
GO

接下来,在开发和测试服务器上,我可以毫无问题地运行此命令:

OPEN SYMMETRIC KEY DataFileKey
DECRYPTION BY CERTIFICATE DataFileCert;

在生产环境中,我收到错误消息“找不到对称密钥”DataFileKey“,因为它不存在或您没有权限。"
我可以在对象资源管理器中看到证书和对称密钥。我还可以删除密钥和证书,然后重新开始。因此,我知道它存在,而且我甚至有权删除它。
在这种情况下--我是创建主密钥、证书和对称密钥的人,并且我在所有三个示例上都是db_owner角色--这里会发生什么呢?

bihw5rsg

bihw5rsg1#

检查以确保您的用户同时具备以下两项:

GRANT VIEW DEFINITION ON CERTIFICATE :: DataFileCert TO [userName]
GRANT VIEW DEFINITION ON SYMMETRIC KEY :: DataFileKey TO [userName]

用于创建密钥的证书以及密钥本身。

相关问题