SQLServer更改用户定义的数据库角色
更改用户定义的数据库角色注意事项
需具有以下一项或多项权限或成员身份才能运行此命令:
- 对角色具有 ALTER 权限
- 对数据库具有 ALTER ANY ROLE 权限
- 具有 db_securityadmin 固定数据库角色的成员身份
此外,若要更改固定数据库角色中的成员身份还需要:
- 具有 db_owner 固定数据库角色的成员身份
不能更改固定数据库角色的名称。
使用SSMS数据库管理工具更改用户定义的数据库角色
1、连接数据库-》选择数据库-》展开安全性-》展开角色-》展开数据库角色-》选择要修改的数据库角色-》右键点击-》选择属性。

2、在数据库角色属性弹出框-》点击常规-》修改角色所有者-》修改角色拥有的架构(数据库架构,类似于数据库对象的命名空间,用户通过架构访问数据库对象,数据库角色可以添加,可以定制不同权限,可以拥有一个或者多个数据库架构)-》修改角色成员(角色指定向数据库角色的成员身份添加数据库主体)。

3、在数据库角色属性弹出框-》点击安全对象-》修改数据库角色名称-》修改数据库角色安全对象-》修改数据库角色安全对象权限(当使用角色执行数据库操作、对象和资源时,通过安全对象和权限设置来定义和解决这个问题)。

4、在数据库角色属性弹出框-》点击扩展属性-》修改数据库角色注释(对角色进行注释解说)-》点击确定,修改完成。

使用T-SQL脚本更改用户定义的数据库角色
语法
--声明数据库引用
use database_name;
go
--修改数据库中创建新的数据库角色名称
alter role role_name with name=new_role_name;
go --修改此角色拥有的架构
--添加时执行下列语法
use database_name
go
alter authorization on schema::架构名称 to role_name;
go
--删除或者时把架构拥有者改为架构本身即,注意不要删除架构
use database_name
go
alter authorization on schema::架构名称 to 架构名称;
go ----此角色的成员
--添加成员
use database_name
go
alter role role_name add member database_principal;
go
----删除成员
use database_name
go
alter role role_name drop member database_principal;
go ----此角色的安全对象
----授予权限
use database_name
go
----授予备份日志的权限
grant 权限名称 to role_name;
go
----授予并允许转授备份日志的权限
grant 权限名称 to role_name with grant option;
go
----回收授予并允许转转授备份数据库的权限
revoke grant option for 权限名称 to role_name cascade as 所有者;
go
----拒绝不安全的程序集
deny 权限名称 to role_name cascade;
go --修改此角色注释
use database_name
go
exec sys.sp_updateextendedproperty @name=扩展属性名称, @value=扩展属性值 , @level0type=N'user',@level0name=role_name ;
go
语法注释
--database_name
--数据库名称
--role_name
--适用范围:SQL Server(从 2008 版开始)和 Azure SQL Database
--指定要更改的数据库角色。
--with name=new_role_name
--适用范围:SQL Server(从 2008 版开始)和 Azure SQL Database
--指定更改用户定义的数据库角色的名称。 数据库中必须尚未包含新名称。
--更改数据库角色的名称不会更改角色的 ID 号、所有者或权限。
--add member database_principal
--适用范围:SQL Server(从 2012 版开始)和Azure SQL Database
--指定向数据库角色的成员身份添加数据库主体。
--database_principal 是数据库用户或用户定义的数据库角色。
--database_principal 不能是固定的数据库角色或是服务器主体。
--drop member database_principal
--适用范围:SQL Server(从 2012 版开始)和Azure SQL Database
--指定从数据库角色的成员身份删除数据库主体。
--database_principal 是数据库用户或用户定义的数据库角色。
--database_principal 不能是固定的数据库角色或是服务器主体。
示例
--修改此角色拥有的架构
--添加时执行下列语法
--use [testss]
--go
--alter authorization on schema::[db_accessadmin] to testrole;
--go
--删除或者时把架构拥有者改为架构本身即,注意不要删除架构
use [testss]
go
alter authorization on schema::[db_accessadmin] to [db_accessadmin]
go /**********
语法
添加角色成员
alter role role_name add member database_principal
--add member database_principal
--适用范围:SQL Server(从 2012 版开始)和Azure SQL Database
--指定向数据库角色的成员身份添加数据库主体。
--database_principal 是数据库用户或用户定义的数据库角色。
--database_principal 不能是固定的数据库角色或是服务器主体。 删除角色成员
alter role role_name drop member database_principal
--drop member database_principal
--适用范围:SQL Server(从 2012 版开始)和Azure SQL Database
--指定从数据库角色的成员身份删除数据库主体。
--database_principal 是数据库用户或用户定义的数据库角色。
--database_principal 不能是固定的数据库角色或是服务器主体。
***********/
----此角色的成员
--添加成员
--use [testss]
--go
--alter role testrole add member [guest];
--go
----删除成员
use [testss]
go
alter role [testrole] drop member [guest];
go ----此角色的安全对象
----授予权限
--use [testss]
--go
----授予备份日志的权限
--grant backup log to [testrole];
--go
----授予并允许转授备份日志的权限
--grant backup log to [testrole] with grant option;
--go
----回收授予并允许转转授备份数据库的权限
--revoke grant option for backup log to [testrole] cascade as [dbo];
--go
----拒绝不安全的程序集
--deny backup log to [testrole] cascade;
--go --修改此角色注释
use [testss]
go
exec sys.sp_updateextendedproperty @name=N'roledescript', @value=N'修改测试角色' , @level0type=N'user',@level0name=N'testrole';
go /**********
语法
alter role role_name with name=new_name;
--role_name
--适用范围:SQL Server(从 2008 版开始)和 Azure SQL Database
--指定要更改的数据库角色。
--with name=new_name
--适用范围:SQL Server(从 2008 版开始)和 Azure SQL Database
--指定更改用户定义的数据库角色的名称。 数据库中必须尚未包含新名称。
--更改数据库角色的名称不会更改角色的 ID 号、所有者或权限。
**********/
--声明数据库引用
use [testss];
go
--修改数据库中创建新的数据库角色名称
alter role testrole with name=alterrole;
go
示例结果:注意T-SQL脚本执行完成之后需要刷信查看执行结果!

SQLServer更改用户定义的数据库角色的更多相关文章
- SQLServer之创建用户定义的数据库角色
创建用户定义的数据库角色注意事项 角色是数据库级别的安全对象. 在创建角色后,可以使用 grant.deny 和revoke来配置角色的数据库级权限. 若要向数据库角色添加成员,请使用alter ro ...
- SQLServer之删除用户定义的数据库角色
删除用户定义的数据库角色注意事项 无法从数据库删除拥有安全对象的角色. 若要删除拥有安全对象的数据库角色,必须首先转移这些安全对象的所有权,或从数据库删除它们. 无法从数据库删除拥有成员的角色. 若要 ...
- Dynamics 365需要的最小的权限用来更改用户的业务部门和角色
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- Sqlserver限制用户访问指定数据库
USE master CREATE LOGIN test --要创建的用户名 WITH PASSWORD = '123456', --密码 DEFAULT_DATABASE = DBTest, --指 ...
- sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系
原创链接:https://www.cnblogs.com/lxf1117/p/6762315.html sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户 ...
- SQL Server 登录名、服务器角色、用户名和数据库角色 --- 解释
一.基本解释 登录名:登录服务器的用户账号: 服务器角色:登录名对该服务器具有的权限,角色分多种的,一个角色可以有多个登录名,如操作系统的系统用户可以有多个. SQL服务器角色 sysadmin ...
- sqlserver 创建用户 sp_addlogin
创建新的 Microsoft® SQL Server™ 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例. 语法: sp_addlogin [ @loginam ...
- SqlServer服务器和数据库角色
首先我们来阐述服务器(实例级别)的权限,实例级别和数据库级别权限的最大不同在于:实例级别的权限是直接授权给登录名,而数据库级别的全显示授予数据库用户的,然后数据库用户再与登录名匹配.(再SqlServ ...
- SQLServer 维护脚本分享(04)服务器角色和数据库角色相关操作
/*------------------------------------------------------------------------------------ [服务器级别-服务器角色] ...
随机推荐
- 【php性能优化】关于写入文件操作的取舍方案
对于使用php对文件进行写入操作有两种方案一种使用 file_put_contents() 和 fopen()/fwrite()/fclose() 两种方案至于应该怎么选,我觉得应该分情况选择,下面是 ...
- 设计模式 | 装饰模式(decorator)
定义: 装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 结构:(书中图,侵删) 一个被装饰接口类:从具体类中抽象出来, ...
- Android 启动优化
对与Android的项目来说,app的启动速度是非常重要的.因为用户打开你的app给别人的第一体验就是打开软件的速度.但是app的启动速度是比较难以缩短的,因为一般来说开发者在app的启动入口都会创建 ...
- Android为TV端助力之解决setOnItemSelectedListener一进来就自动执行一次的问题
我们经常会遇到listview或者其他view设置setOnItemSelectedListener监听时,一加载界面,setOnItemSelectedListener监听就会自动执行一遍,导致你第 ...
- OutOfMemoryError/OOM/内存溢出异常实例分析--堆内存溢出
Java堆内存溢出 只要不断创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象, 那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常,代码如下: import ...
- JAVAFX之tableview界面实时刷新导致的内存溢出(自己挖的坑,爬着也要出来啊0.0)
这几天遇到了一个问题,不幸开发的一个cs架构的工具,客户端开启后,内存一直在缓慢增长最终导致进程卡死,花了4天时间,终于爬出来了... 客户端通过timer定时器每30秒查询一次数据库以及一些业务逻辑 ...
- vue2.0 日历日程表 ,可进行二次开发.
由于工作业务需求,要写一个日程表,日程表写之前 要先生成日历,废话不多说,直接 上代码: <!DOCTYPE html> <html lang="zh-CN"&g ...
- Spring的PropertyPlaceholderConfigurer强制使用默认值的坑
1.问题 dubbo client配置: <dubbo:reference id="channelCustomerClient" interface="com.gt ...
- ubuntu-18.04 设置开机启动脚本-亲测有效
ubuntu-18.04不能像ubuntu14一样通过编辑rc.local来设置开机启动脚本,通过下列简单设置后,可以使rc.local重新发挥作用. 2.将下列内容复制进rc-local.servi ...
- 前端神器-神级代码编辑软件Sublime Text下载、使用教程、插件推荐说明、全套快捷键
Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器.Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能 ...