仅对2个用户授予对称密钥访问权限

时间:2009-06-30 18:14:00

标签: sql-server-2005

我正在尝试在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]

1 个答案:

答案 0 :(得分:1)

谁拥有钥匙?您的应用如何访问密钥?所有权链是否有机会扮演任何角色? AppUser属于哪些组和角色?

('My_Key', 'SYMMETRIC KEY')执行后fn_my_permissions AppUser返回什么权限(创建密钥后)?

更新:修复了fn_my_permissions安全类型中的拼写错误