SQLServer更改用戶定義的數據庫角色

更改用戶定義的數據庫角色注意事項

需具備如下一項或多項權限或成員身份才能運行此命令:數據庫

對角色具備 ALTER 權限
對數據庫具備 ALTER ANY ROLE 權限
具備 db_securityadmin 固定數據庫角色的成員身份
此外,若要更改固定數據庫角色中的成員身份還須要:安全

具備 db_owner 固定數據庫角色的成員身份
不能更改固定數據庫角色的名稱。服務器

使用SSMS數據庫管理工具更改用戶定義的數據庫角色

一、鏈接數據庫-》選擇數據庫-》展開安全性-》展開角色-》展開數據庫角色-》選擇要修改的數據庫角色-》右鍵點擊-》選擇屬性。架構

clipboard.png

二、在數據庫角色屬性彈出框-》點擊常規-》修改角色全部者-》修改角色擁有的架構(數據庫架構,相似於數據庫對象的命名空間,用戶經過架構訪問數據庫對象,數據庫角色能夠添加,能夠定製不一樣權限,能夠擁有一個或者多個數據庫架構)-》修改角色成員(角色指定向數據庫角色的成員身份添加數據庫主體)。工具

clipboard.png

三、在數據庫角色屬性彈出框-》點擊安全對象-》修改數據庫角色名稱-》修改數據庫角色安全對象-》修改數據庫角色安全對象權限(當使用角色執行數據庫操做、對象和資源時,經過安全對象和權限設置來定義和解決這個問題)。測試

clipboard.png

四、在數據庫角色屬性彈出框-》點擊擴展屬性-》修改數據庫角色註釋(對角色進行註釋解說)-》點擊肯定,修改完成。spa

clipboard.png

使用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_namecode

--適用範圍: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腳本執行完成以後須要刷信查看執行結果!

clipboard.png

相關文章
相關標籤/搜索