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

时间:2010-11-19 20:20:41

标签: 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 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所需的权限。你能救我吗?

1 个答案:

答案 0 :(得分:1)

您是否尝试过此而不是查询?

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