角色是数据库级别的安全对象。 在建立角色后,可使用 grant、deny 和revoke来配置角色的数据库级权限。 若要向数据库角色添加成员,请使用alter role(Transact-SQL)。 数据库
在 sys.database_role_members 和 sys.database_principals 目录视图中能够查看数据库角色。安全
有关设计权限系统的信息,请参阅 Getting Started with Database Engine Permissions。服务器
要求对数据库具备create role权限或者在 db_securityadmin固定数据库角色中具备成员身份。 架构
使用authorization选项时,还须要具备下列权限:工具
若要将角色的全部权分配给另外一个用户,则须要对该用户具备impersonate权限。测试
若要将角色的全部权分配给另外一个角色,则须要具备被分配角色的成员身份或对该角色具备alter权限。spa
若要将角色的全部权分配给应用程序角色,则须要对该应用程序角色具备alter权限。设计
一、登录服务器-》在对象资源管理器选择数据库-》展开数据库-》展开安全性-》展开数据库角色-》右键点击数据库角色-》点击新建数据库角色。code
二、在数据库角色-新建弹出框-》输入角色名称-》点击角色拥有者。对象
三、在选择数据库用户或角色弹出框-》修改对象类型或者不修改-》点击浏览。
四、在查找对象-》选择匹配的对象-》点击肯定。
五、在选择数据库用户或角色弹出框-》点击肯定。
六、在数据角色-新建-》选择此角色拥有的架构,可多选。
七、在数据角色-新建-》选择此角色的成员-》点击添加。
八、在选择数据库用户或角色弹出框-》更改对象类型,可以使用系统默认-》点击浏览选择对象名称。
九、在查找对象弹出框-》选增匹配的对象,可多选-》选择完成之后点击肯定。
十、在选择数据库用户或角色弹出框-》点击肯定。
十一、在数据库角色-新建-》点击安全对象,选择安全对象而且赋予权限。
十二、在数据库角色-新建弹出框-》点击搜索选择安全对象。
1三、在添加对象弹出框-》选择对象(本示例演示特定数据库对象)-》点击肯定。
1四、在选择对象弹出框-》首先选择对象。
1五、在选择对象类型-》选择对象(本示例演示数据库级别的对象)-》点击肯定。
1六、在选择对象弹出框-》选择浏览。
1七、在查找对象弹出框-》选择数据库对象-》点击肯定。
1八、在选择对象弹出框-》点击肯定。
1九、在数据库角色-新建-》选择新建角色拥有数据库权限。
20、在新建角色-新建弹窗框-》点击扩展属性-》输入新建角色名称和值-》点击肯定。
2一、查看建立结果。
--声明数据库引用 use 数据库名; go --建立用新的数据库角色以前判断角色是否已存在,若是已存在则删除。 if exists(select * from sys.database_principals where name=role_name) --此角色的成员删除成员 use 数据库名 go alter role role_name drop member owner_name go --删除角色注释 use 数据库名 go exec sys.sp_dropextendedproperty @name=扩展属性名称,@level0type=N'user',@level0name=role_name go --删除此角色 drop role role_name; go --当前数据库中建立新的数据库角色 create role role_name --角色拥有者 authorization owner_name;
--role_name
--待建立角色的名称。
--authorization owner_name
--将拥有新角色的数据库用户或角色。若是未指定用户,则执行create role的用户将拥有该角色。
--声明数据库引用 use [testss]; go --建立用新的数据库角色以前判断角色是否已存在,若是已存在则删除。 if exists(select * from sys.database_principals where name='testrole') --此角色的成员删除成员 use [testss] go alter role [testrole] drop member [guest] go --删除角色注释 use [testss] go exec sys.sp_dropextendedproperty @name=N'roledescript',@level0type=N'user',@level0name=N'testrole' go --删除此角色 drop role testrole; go --当前数据库中建立新的数据库角色 create role testrole --角色拥有者 authorization dbo; --role_name --待建立角色的名称。 --authorization owner_name --将拥有新角色的数据库用户或角色。若是未指定用户,则执行create role的用户将拥有该角色。 --建立此角色拥有的架构 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 ----此角色的成员 ----添加成员 --use [testss] --go --alter role testrole add member [guest]; --go --此角色的安全对象 use [testss] go grant backup log to testrole with grant option; go --添加此角色注释 use [testss] go exec sys.sp_addextendedproperty @name=N'roledescript', @value=N'新建测试角色' , @level0type=N'user',@level0name=N'testrole'; go