需具備如下一項或多項權限或成員身份才能運行此命令:數據庫
對角色具備 ALTER 權限
對數據庫具備 ALTER ANY ROLE 權限
具備 db_securityadmin 固定數據庫角色的成員身份
此外,若要更改固定數據庫角色中的成員身份還須要:安全
具備 db_owner 固定數據庫角色的成員身份
不能更改固定數據庫角色的名稱。服務器
一、鏈接數據庫-》選擇數據庫-》展開安全性-》展開角色-》展開數據庫角色-》選擇要修改的數據庫角色-》右鍵點擊-》選擇屬性。架構
二、在數據庫角色屬性彈出框-》點擊常規-》修改角色全部者-》修改角色擁有的架構(數據庫架構,相似於數據庫對象的命名空間,用戶經過架構訪問數據庫對象,數據庫角色能夠添加,能夠定製不一樣權限,能夠擁有一個或者多個數據庫架構)-》修改角色成員(角色指定向數據庫角色的成員身份添加數據庫主體)。工具
三、在數據庫角色屬性彈出框-》點擊安全對象-》修改數據庫角色名稱-》修改數據庫角色安全對象-》修改數據庫角色安全對象權限(當使用角色執行數據庫操做、對象和資源時,經過安全對象和權限設置來定義和解決這個問題)。測試
四、在數據庫角色屬性彈出框-》點擊擴展屬性-》修改數據庫角色註釋(對角色進行註釋解說)-》點擊肯定,修改完成。spa
--聲明數據庫引用 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