2009-06-30 28 views
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] 

回答

1

誰擁有密鑰?你的應用如何訪問密鑰?所有權鏈接是否有機會扮演任何角色? AppUser屬於哪些組和角色?

什麼權限fn_my_permissions('My_Key', 'SYMMETRIC KEY')當由AppUser執行時(在密鑰創建後)返回?

更新:在fn_my_permissions可固定式

+0

固定錯字我創造了我自己的帳戶的關鍵。我在存儲過程的開始部分打開密鑰並進行加密或解密,如下所示:http://msdn.microsoft.com/en-us/library/ms179331.aspx AppUser屬於公共服務器角色並且在數據庫本身上是db_owner,public。 fn_my_permissions()不返回任何結果。 – AndyMcKenna 2009-07-01 15:09:44

相關問題