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