zoukankan      html  css  js  c++  java
  • SqlServer查看数据库信息及服务器级、数据库级、数据库独立 用户权限

    --数据库清单
    SELECT * FROM Master..SysDatabases ORDER BY Name;  
    
    --服务器级用户权限
    WITH CTE AS
    (
    SELECT u.name AS UserName,
    u.is_disabled AS IsDisabled,
    g.name as svrRole,
    '' as 'flag'
    FROM sys.server_principals u
    INNER JOIN sys.server_role_members m ON u.principal_id = m.member_principal_id
    INNER JOIN sys.server_principals g ON g.principal_id = m.role_principal_id
    )
    SELECT * FROM CTE PIVOT(MAX(flag) FOR svrRole IN ([public],
    [sysadmin],
    [securityadmin],
    [serveradmin],
    [setupadmin],
    [processadmin],
    [diskadmin],
    [dbcreator],
    [bulkadmin])) as rg;
    
    --数据库级用户权限
    WITH CTE AS
    (
    SELECT u.name AS UserName,
    g.name AS dbRole,
    '' as 'flag'
    FROM sys.database_principals u
    INNER JOIN sys.database_role_members m ON u.principal_id = m.member_principal_id
    INNER JOIN sys.database_principals g ON g.principal_id = m.role_principal_id
    )
    SELECT * FROM CTE PIVOT(MAX(flag) FOR dbRole IN ([public],
    [db_owner],
    [db_accessadmin],
    [db_securityadmin],
    [db_ddladmin],
    [db_backupoperator],
    [db_datareader],
    [db_datawriter],
    [db_denydatareader],
    [db_denydatawriter])) as rg;
    
    --数据库级独立用户权限
    select c.name as UserName,b.name as ObjectName,
    CASE b.type
    WHEN 'U' THEN 'Table'
    WHEN 'P' THEN 'Procedure'
    ELSE 'OTHER'
    END AS ObjectType,
    CASE WHEN a.ACTION = 26 AND a.PROTECTTYPE = 205 THEN '' ELSE '' END AS 'REFERENCES',
    CASE WHEN a.ACTION = 193 AND a.PROTECTTYPE = 205 THEN '' ELSE '' END AS 'SELECT',
    CASE WHEN a.ACTION = 195 AND a.PROTECTTYPE = 205 THEN '' ELSE '' END AS 'INSERT',
    CASE WHEN a.ACTION = 197 AND a.PROTECTTYPE = 205 THEN '' ELSE '' END AS 'UPDATE',
    CASE WHEN a.ACTION = 196 AND a.PROTECTTYPE = 205 THEN '' ELSE '' END AS 'DELETE',
    CASE WHEN a.ACTION = 224 AND a.PROTECTTYPE = 205 THEN '' ELSE '' END AS 'EXECUTE',
    CASE a.PROTECTTYPE
    WHEN 204 THEN 'GRANT_W_GRANT'
    WHEN 205 THEN 'GRANT'
    WHEN 206 THEN 'DENY'
    ELSE 'OTHER'
    END AS ProtectType
    from sysprotects a inner join sysobjects b on a.id = b.id
    inner join sysusers c on a.uid = c.uid order by c.name,b.name
  • 相关阅读:
    oracle 索引分区处于不可用状态怎么解决 规格严格
    去IOE 遇到Jdbc mysql sql_mode的坑[转载] 规格严格
    【java】高并发之限流 RateLimiter使用 规格严格
    信息泄露引发的资产失陷与检测分析 规格严格
    一种失陷设备识别与设备失陷度评估的方法、装置 规格严格
    加快ios的出包速度
    为游戏接入ios sdk的oc学习笔记
    缩小ios的包体
    python2排序
    Sentinel 控制台
  • 原文地址:https://www.cnblogs.com/seanyan/p/13150827.html
Copyright © 2011-2022 走看看