Я знаю, что мы можем проверить имена входа и определенных пользователей, используя графический интерфейс в SQL Server, но мне интересно, как мы можем сделать эту проверку с помощью скрипта.
Я выполнил запрос ниже, но он показывает Principal_id, который я не уверен, как сопоставить, чтобы получить уровень разрешений.
SELECT * FROM Sys.login_token
Так есть ли встроенный сохраненный процесс, который может перечислить имена входа и пользователей с их уровнем разрешений ?
Спасибо.
Ответы:
Не уверен, что есть встроенный способ, но попробуйте этот запрос для принципалов сервера:
В основном то, что он делает, он получает разрешения и отказывает, и объединяет его с членством роли. Это должно дать вам краткий обзор безопасности для входа на сервер. Дай мне знать, если это то, что ты ищешь.
источник
CAST([srvperm].[state_desc] AS VARCHAR(MAX)) + ' ' + CAST(srvperm.[permission_name] AS VARCHAR(MAX)) + ' TO [' + CAST(srvprin.name AS VARCHAR(MAX)) + '];' as GrantQuery
имен входа», например, - что помогает реплицировать эти разрешения при миграции сервера :)Попробуйте это - здесь будут перечислены пользователи, объекты и разрешения, которые они имеют для этих объектов:
Вам также следует проверить функцию sys.fn_my_permissions:
http://msdn.microsoft.com/en-us/library/ms188367.aspx
Вот несколько ссылок, которые также должны вам помочь:
РАЗРЕШЕНИЯ: http://msdn.microsoft.com/en-us/library/ms191291.aspx
SYS.DATABASE_PERMISSIONS: http://msdn.microsoft.com/en-us/library/ms188367.aspx
Я надеюсь, это поможет вам.
источник