Я хочу проверить, имеет ли зарегистрированный пользователь на моем SQL-сервере разрешения для создания баз данных.Проверьте, есть ли у пользователя разрешения CREATE DATABASE
Я попытался следующие утверждения:
SELECT HAS_PERMS_BY_NAME(db_name(), 'DATABASE', 'CREATE')
SELECT HAS_PERMS_BY_NAME(null, 'DATABASE', 'CREATE')
SELECT HAS_PERMS_BY_NAME(null, null, 'CREATE DATABASE')
Но каждый из них возвращает NULL
вместо 1
, хотя я действительно есть права на создание новые базы данных.
Я предполагаю, что он должен вернуть 1
, запустив SELECT HAS_PERMS_BY_NAME(null, null, 'VIEW SERVER STATE');
, который возвращает 1
:)
Что мне не хватает?
Я не думаю, что это сработает. В частности, это проверяет только тот способ предоставления разрешения на создание баз данных. –
@BenThul Вы уверены в этом? Поскольку в документации указано «Указывает, является ли вход в SQL Server членом указанной роли сервера». И в этой роли есть разрешения CREATE DATABASE. – SeToY
Справа. Но что делать, если я дам создать базу данных для someLogin'? –