Tsql SQL Server 2008:如何确定创建新数据库的权限?

Tsql SQL Server 2008:如何确定创建新数据库的权限?,tsql,sql-server-2008,permissions,Tsql,Sql Server 2008,Permissions,我想确定当前连接的数据库用户是否有创建新数据库的权限。我想通过使用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 p

我想确定当前连接的数据库用户是否有创建新数据库的权限。我想通过使用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确定所需的权限。你能帮我吗?

你试过用这个代替你的查询吗

select * from sys.fn_my_permissions('','')

你试过这个而不是你的查询吗

select * from sys.fn_my_permissions('','')