我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SQLSERVER列出所有用户权限

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SQLSERVER列出所有用户权限

--服务器级权限
WITH CTE AS
(
SELECT u.name AS 用户名,
u.is_disabled AS 是否禁用,
g.name as 服务器角色,
'√' 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 服务器角色 IN ([public],
[sysadmin],
[securityadmin],
[serveradmin],
[setupadmin],
[processadmin],
[diskadmin],
[dbcreator],
[bulkadmin])) AS T

--数据库级权限
WITH CTE AS
(
SELECT u.name AS 用户名,
g.name AS 数据库角色,
'√' 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 数据库角色 IN ([public],
[db_owner],
[db_accessadmin],
[db_securityadmin],
[db_ddladmin],
[db_backupoperator],
[db_datareader],
[db_datawriter],
[db_denydatareader],
[db_denydatawriter])) AS T

--数据库级单独权限
select c.name as 用户名,b.name as 对象名,
CASE b.type
WHEN 'U' THEN 'Table'
WHEN 'P' THEN 'Procedure'
ELSE 'OTHER'
END AS 对象类型,
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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SQLSERVER列出所有用户权限

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux怎么列出所有用户

要列出所有用户,可以使用以下命令:1. 使用cat命令查看/etc/passwd文件,该文件记录了系统上的所有用户以及他们的用户信息。命令如下:cat /etc/passwd2. 使用cut命令和-d参数来指定分隔符,只显示用户名字段。命令
2023-10-18

mysql怎么撤销用户所有权限

要撤销MySQL用户所有权限,可以使用REVOKE语句。首先,登录到MySQL数据库中,然后执行以下命令:REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';这将撤销用户’us
mysql怎么撤销用户所有权限
2024-04-09

MSSQL 如何导出db所有用户权限创建语句

use dbgoDECLARE @Database varchar(255),@loginName varchar(255),@roleName varchar(255),@sql nvarchar(max);SET @sql=N;DECL
2023-06-03

如何给oracle的用户添加所有权限

要给Oracle用户添加所有权限,可以使用以下步骤:以具有sysdba角色的用户身份登录到Oracle数据库。执行以下命令创建一个新的角色,并授予该角色所有系统特权:CREATE ROLE dba_role;GRANT ALL PRIV
如何给oracle的用户添加所有权限
2024-04-09

将数据库的所有权限授予MySQL用户?

首先,使用 CREATE 命令创建用户和密码。语法如下。CREATE USER yourUserName@localhost IDENTIFIED BY yourPassword;将特定数据库的所有权限授予用户的语法如下。GRANT ALL
2023-10-22

sqlserver怎么创建用户并设置权限

要在SQL Server中创建用户并设置权限,可以按照以下步骤进行:1. 在SQL Server中打开SQL Server Management Studio (SSMS)。2. 连接到SQL Server实例,使用具有足够权限的管理员账号
2023-10-18

sqlserver用户权限分配的方法是什么

在SQL Server中,有多种方法可以分配用户权限,具体取决于您想要分配的权限级别和对象类型。以下是常用的方法:1. 使用GRANT语句:使用GRANT语句可以授予用户对数据库对象(如表、视图、存储过程等)的特定权限。例如,使用以下语法授
2023-09-27

SQLServer中如何创建用户并授予权限

要在SQLServer中创建用户并授予权限,您可以按照以下步骤操作:首先,使用管理员账户登录到SQLServer Management Studio (SSMS)。选择您要创建用户的数据库,然后右键点击该数据库,选择“新建查询”。在查询窗口
SQLServer中如何创建用户并授予权限
2024-04-09

MySQL 中有哪些用户权限管理

MySQL 中有哪些用户权限管理?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。容。 1.用户权限简介当我们创建过数据库用户后,还不能执行任何操作,需要为该用户分配适当的访
2023-06-14

编程热搜

目录