我正在尝试在SQL Server 2005中创建对称密钥,并将其限制为sa和应用程序用户帐户。尝试打开帐户时,所有其他帐户都会出错。
以下是我创建它的方式。为了这个问题,我更改了名称。
CREATE CERTIFICATE My_Certificate
WITH SUBJECT = 'My Cert Subject';
GO
CREATE SYMMETRIC KEY My_Key
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE My_Certificate;
GO
此时,我的应用程序用户可以打开密钥,即使我没有给它许可。如果我拒绝[公共]组,即使我稍后将其直接授予app用户,我也无法打开密钥。我不想单独拒绝每个用户,因为我不知道生产中存在哪些用户。我还希望创建的任何新用户都无法访问此密钥。
我正在使用的DENY和GRANT行是:
DENY VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [public]
GRANT VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [AppUser]
答案 0 :(得分:1)
谁拥有钥匙?您的应用如何访问密钥?所有权链是否有机会扮演任何角色? AppUser属于哪些组和角色?
('My_Key', 'SYMMETRIC KEY')
执行后fn_my_permissions
AppUser
返回什么权限(创建密钥后)?
更新:修复了fn_my_permissions
安全类型中的拼写错误