0
我试图在SQL Server 2005中创建一个对称密钥,并将其限制为只有sa和应用程序用户帐户。所有其他帐户在尝试打开时都会出现错误。格兰特对称只有2个用户的密钥访问
下面是我如何创建它。我改变了这个问题的名称。
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
在这一点上,即使我没有给它的权限,我的应用程序用户可以打开密钥。如果我拒绝[public]组,即使稍后将其直接授予应用用户,我也无法打开该密钥。我不想单独拒绝每个用户,因为我不知道生产中存在哪些用户。我还希望任何创建的新用户都无法访问此密钥。
拒绝和我使用GRANT线路有:
DENY VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [public]
GRANT VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [AppUser]
固定错字我创造了我自己的帐户的关键。我在存储过程的开始部分打开密钥并进行加密或解密,如下所示:http://msdn.microsoft.com/en-us/library/ms179331.aspx AppUser属于公共服务器角色并且在数据库本身上是db_owner,public。 fn_my_permissions()不返回任何结果。 – AndyMcKenna 2009-07-01 15:09:44