2016-07-12 2 views
0

В соответствии с documentation пользователь должен иметь VIEW ANY DEFINITION или ALTER 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(); 

Вы можете применить разрешения к этому виду, если требуется.

Смежные вопросы