當前資料庫中創建新的資料庫角色註意事項 角色是資料庫級別的安全對象。 在創建角色後,可以使用 grant、deny 和revoke來配置角色的資料庫級許可權。 若要向資料庫角色添加成員,請使用alter role(Transact-SQL)。 在 sys.database_role_members 和 ...
當前資料庫中創建新的資料庫角色註意事項
角色是資料庫級別的安全對象。 在創建角色後,可以使用 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許可權。
-
若要將角色的所有權分配給應用程式角色,則需要對該應用程式角色具有alter許可權。
使用SSMS資料庫管理工具在當前資料庫中創建新的資料庫角色
1、登陸伺服器-》在對象資源管理器選擇資料庫-》展開資料庫-》展開安全性-》展開資料庫角色-》右鍵點擊資料庫角色-》點擊新建資料庫角色。
2、在資料庫角色-新建彈出框-》輸入角色名稱-》點擊角色擁有者。
3、在選擇資料庫用戶或角色彈出框-》修改對象類型或者不修改-》點擊瀏覽。
4、在查找對象-》選擇匹配的對象-》點擊確定。
5、在選擇資料庫用戶或角色彈出框-》點擊確定。
6、在數據角色-新建-》選擇此角色擁有的架構,可多選。
7、在數據角色-新建-》選擇此角色的成員-》點擊添加。
8、在選擇資料庫用戶或角色彈出框-》更改對象類型,可使用系統預設-》點擊瀏覽選擇對象名稱。
9、在查找對象彈出框-》選增匹配的對象,可多選-》選擇完成以後點擊確定。
10、在選擇資料庫用戶或角色彈出框-》點擊確定。
11、在資料庫角色-新建-》點擊安全對象,選擇安全對象並且賦予許可權。
12、在資料庫角色-新建彈出框-》點擊搜索選擇安全對象。
13、在添加對象彈出框-》選擇對象(本示例演示特定資料庫對象)-》點擊確定。
14、在選擇對象彈出框-》首先選擇對象。
15、在選擇對象類型-》選擇對象(本示例演示資料庫級別的對象)-》點擊確定。
16、在選擇對象彈出框-》選擇瀏覽。
17、在查找對象彈出框-》選擇資料庫對象-》點擊確定。
18、在選擇對象彈出框-》點擊確定。
19、在資料庫角色-新建-》選擇新建角色擁有資料庫許可權。
20、在新建角色-新建彈窗框-》點擊擴展屬性-》輸入新建角色名稱和值-》點擊確定。
21、查看創建結果。
使用T-SQL腳本創建新的資料庫角色
語法:
--聲明資料庫引用
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
示例結果: