代码之家  ›  专栏  ›  技术社区  ›  Sebastian P.R. Gingter

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

  •  1
  • Sebastian P.R. Gingter  · 技术社区  · 14 年前

    我想确定 当前连接 数据库用户具有创建新数据库的权限。我想通过使用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 回复  |  直到 14 年前
        1
  •  1
  •   Stu    14 年前

    你试过这个而不是你的问题吗?

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