После того, как логин создан из асимметричного ключа и назначены некоторые разрешения, как мне перечислить разрешения - PullRequest
0 голосов
/ 16 мая 2019

Используя MS Sql Server, я хочу проверить разрешения для логина, созданного с помощью асимметричного ключа.

Обычный способ получить разрешения для логина - олицетворение и использование fn_my_permissions.

EXECUTE AS USER = 'JupiterLogin';  
SELECT * FROM fn_my_permissions(null, 'DATABASE')   
REVERT;

Я получаю эту ошибку:

Msg 15517, Уровень 16, Состояние 1, Строка 1

Невозможно выполнить в качестве участника базы данных, так как основной "JupiterLogin" делаетне существует, этот тип принципала не может быть олицетворен, или у вас нет разрешения.

1 Ответ

0 голосов
/ 16 мая 2019

Логины, созданные из сертификатов или асимметричных ключей, используются для подписи кода.Обычно, это означает, что с подпрограммами SQLCLR.

Их нельзя использовать для подключения к SQL Server.И они не могут подражать.Так что следующий фрагмент не будет работать.

EXECUTE AS USER = 'JupiterLogin';  

Чтобы перечислить разрешения, явно предоставленные или запрещенные для участников сервера, используйте следующий фрагмент.

SELECT pr.principal_id, pr.name, pr.type_desc,   
    pe.state_desc, pe.permission_name   
FROM sys.server_principals AS pr   
JOIN sys.server_permissions AS pe   
    ON pe.grantee_principal_id = pr.principal_id
WHERE NAME = 'JupiterLogin'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...