2016-07-12 119 views
0

根據documentation,用戶應該有VIEW ANY DEFINITIONALTER ANY CREDENTIAL查看憑據。問題是,當我授予此權限時,用戶可以看到所有憑據。有沒有辦法限制用戶只能在SQL Server 2014中查看一個憑證?SQL Server sys.credentials權限

+0

你看過模塊簽名嗎?也就是說,創建一個存儲過程,然後使用'create signature'對其進行簽名(並根據簽名的證書授予權限)。 –

回答

0

您創建一個新的視圖對象,該對象根據當前的用戶登錄名(例如,當前位置)查看sys.credentials表。

CREATE VIEW dbo.GetAllowedCredentials 
AS 
SELECT c.credential_id, 
     c.name, 
     c.credential_identity, 
     c.create_date, 
     c.modify_date, 
     c.target_type, 
     c.target_id 
FROM sys.credentials AS c 
INNER JOIN sys.server_principals AS sp ON sp.credential_id = c.credential_id 
WHERE sp.name = ORIGINAL_LOGIN(); 

您可以根據需要對此視圖應用權限。