角色是數據庫級別的安全對象。 在建立角色後,可使用 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