代码之家  ›  专栏  ›  技术社区  ›  Craig Day

SQLServer(2000和2005)查询安全/角色信息

  •  1
  • Craig Day  · 技术社区  · 17 年前

    我需要一个查询来显示SQLServer 2000和SQLServer2005数据库中的用户、角色和权限信息?

    1 回复  |  直到 17 年前
        1
  •  2
  •   Mitch Wheat    17 年前

    登录信息如下:

    从master.dbo.syslogins中选择*

    SQL Server 2005:

    用户(按当前数据库):

    从dbo.sysusers中选择*

    SQL Server 2005:

    Books Online

    如何找到指定实体中包含的所有实体的所有者 模式? [在运行以下命令之前 <database_name> <schema_name> 使用有效名称]。

    USE <database_name>;
    GO
    SELECT 'OBJECT' AS entity_type
        ,USER_NAME(OBJECTPROPERTY(object_id, 'OwnerId')) AS owner_name
        ,name 
    FROM sys.objects WHERE SCHEMA_NAME(schema_id) = '<schema_name>'
    UNION 
    SELECT 'TYPE' AS entity_type
        ,USER_NAME(TYPEPROPERTY(SCHEMA_NAME(schema_id) + '.' + name, 'OwnerId')) AS owner_name
        ,name 
    FROM sys.types WHERE SCHEMA_NAME(schema_id) = '<schema_name>' 
    UNION
    SELECT 'XML SCHEMA COLLECTION' AS entity_type 
        ,COALESCE(USER_NAME(xsc.principal_id),USER_NAME(s.principal_id)) AS owner_name
        ,xsc.name 
    FROM sys.xml_schema_collections AS xsc JOIN sys.schemas AS s
        ON s.schema_id = xsc.schema_id
    WHERE s.name = '<schema_name>';
    GO