首页 > 数据库 >16.4 SQL Server删除角色

16.4 SQL Server删除角色

时间:2023-01-30 21:44:24浏览次数:45  
标签:删除 角色 DROP sales Server 16.4 ROLE SQL type

SQL Server删除角色

目录

简介

语法:

DROP ROLE [IF EXISTS] role_name;

DROP ROLE无法删除拥有安全资源的角色。要删除拥有安全资源的角色,需要首先转移这些安全资源的所有权,然后从数据库中删除该角色。

DROP ROLE语句无法删除具有成员的角色。若要删除具有成员的角色,需要先从角色中删除成员,然后再将其删除。

DROP ROLE语句无法删除系统自带固定数据库角色,如db_datareaderdb_datawriterdb_securityadmin等。

示例

1)DROP ROLE简单示例

删除角色sox_auditors:

DROP ROLE IF EXISTS sox_auditors;

角色sox_auditors没有成员,所以执行成功。

2)DROP ROLE删除具有成员的角色

首先,使用DROP ROLE语句从数据库中删除角色sales:

DROP ROLE sales;

由于角色sales有成员,SQL Server会出现以下错误:

The role has members. It must be empty before it can be dropped.

所以,要查找属于sales角色的成员,请使用以下语句:

SELECT
  r.name role_name,
  r.type role_type,
  r.type_desc role_type_desc,
  m.name member_name,
  m.type member_type,
  m.type_desc member_type_desc
FROM sys.database_principals r
INNER JOIN  sys.database_role_members  rm on rm.role_principal_id = r.principal_id
INNER JOIN sys.database_principals m on m.principal_id = rm.member_principal_id
WHERE r.name ='sales';

输出显示角色sales有一个成员,即用户james。

第三步,使用ALTER ROLE… DROP MEMBER语句从角色销售中删除用户james:

ALTER ROLE sales
DROP MEMBER james;

第四步,再次使用DROP ROLE语句删除角色sales:

DROP ROLE sales;

标签:删除,角色,DROP,sales,Server,16.4,ROLE,SQL,type
From: https://www.cnblogs.com/michaelshen/p/17077318.html

相关文章

  • 18.1 SQL Server阻塞
    SQLServer阻塞目录SQLServer阻塞简介示例简介当两个会话试图同时更新同一数据时,会发生阻塞。第一个会话锁定数据,第二个会话需要等待第一个会话完成并释放锁定。结果......
  • 18.2 SQL Server死锁
    SQLServer死锁目录SQLServer死锁简介示例简介死锁是一个并发问题,其中两个会话会阻止彼此的进程。第一个会话锁定了另一个会话想要访问的资源,反之亦然。下图说明了SQL......
  • mysql02
    mysqlday01课堂笔记1、什么是数据库?什么是数据库管理系统?什么是SQL?他们之间的关系是什么?数据库: 英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 ......
  • PostgreSQL:查询数据表信息
    PostgreSQL14.0pgAdmin4Version5.7-- 0、序章要查询数据表信息,需要用到系统表或系统视图等,比如,pg_tables、pg_class、information_schema等。使用pgAdmin4......
  • Simple-Web-Server HTTP开源服务器库
    1下载网址​ ​​https://gitlab.com/eidheim/Simple-Web-Server​​2实现HTTP短连接默认的HTTP协议都是短连接,服务器返回响应报文,就会主动断开,测试发现,当前库不会主动断......
  • 在linux下安装mysql8.0.22
    前提准备第一步:检查是否有安装过mysql命令:# rpm -qa|grep-Imysql,使用rpm方式进行验证,其中i表示忽略大小写 假如安装过了mysql则需要先卸载命令:# rpm -e--no......
  • MySQL基础-SQL-DDL
    1.SQL通用语法1.SQL语句可以单行或多行书写,以分号结尾。 2.SQL语句可以使用空格/缩进来增强语句的可读性。 3.MySQL数据库的SQL语句不区分大小写,关键......
  • MySql慢查询
    一、简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。开发环境建议一直开启便与优化生成环境建议关......
  • SQL改写案例3(标量子查询改写的各种姿势)
    同事提供一条SQL,原执行时间需要3.6S,反馈比较慢需要优化一下,废话不说贴SQL:原SQL:select((selectcount(1)FROMwf_bus_instancewfjoin......
  • mac m1使用oracle sqlplus
    环境macstudio(2022)ChipAppleM1Maxoracle官网https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html只有Intelx86的......