Я хочу определить, есть ли у пользователя базы данных , подключенной в данный момент , разрешения на создание новой базы данных. Я хочу добиться этого с помощью SQL.
Я пробовал это:
WITH perms AS
( SELECT DISTINCT permission_name AS perm
FROM [sys].[server_permissions]
WHERE permission_name IN
('CONTROL SERVER', 'ALTER ANY DATABASE', 'CREATE ANY DATABASE')
UNION
SELECT DISTINCT permission_name
FROM [sys].[database_permissions]
WHERE permission_name IN
('CREATE DATABASE', 'ALTER DATABASE')
)
SELECT COUNT(perm) AS Permissions FROM perms
потому что на странице MSDN эти разрешения указаны в документации Создать базу данных . Это не работает, потому что у меня есть пользователь в роли dbcreator, и для его пользователя ни одно из разрешений не указано.
Так что мне нужен надежный способ определения необходимых разрешений с использованием SQL. Вы можете мне помочь?