• 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
  • 相关阅读:
    Laravel入坑指南(5)——请求与响应
    Laravel入坑指南(4)——数据库(Mysql)
    CentOS7 开机网卡加载失败
    个人CKeditor的config.js配置
    取消ie浏览器edge浏览器输入框右边的叉和眼睛
    angularjs中ckeditor的destroy问题
    angular js ckeditor directive示例代码
    建立没有文件名的文件
    设置ckeditor文本框的宽度为百分比自适应
    js中遍历删除数组中的项(项目中遇到的问题解决)
  • 原文地址:https://www.cnblogs.com/seanyan/p/13150827.html
Copyright © 2020-2023  润新知