我想确定当前连接的数据库用户是否有权创建新数据库。我想通过使用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页面上Create Database documentation中列出了这些权限。但这不起作用,因为我有一个dbcreator角色的用户,并且对于他的用户,没有列出任何权限。
所以我需要一种可靠的方式来确定使用SQL所需的权限。你能救我吗?
答案 0 :(得分:1)
您是否尝试过此而不是查询?
select * from sys.fn_my_permissions('','')