Sql-Server-2005
SQL Server 2005 將所有使用者添加到數據庫角色的簡單方法
我有三個應用數據庫:A、B和C。A和B的使用者都是C中的使用者;來自 A 的使用者屬於公共角色,只有 SELECT 權限,而來自 B 的使用者屬於具有更多權限的角色。由於最近的一些變化,C 上的所有使用者都需要處於其他角色,而不僅僅是公共角色。由於這將作為數據庫更新檔發布並在 150 多個數據庫上自動執行,因此我希望它是一個簡單的、全面的腳本……即,一個聲明“讓所有使用者擔任這個角色”的單一語句。我知道我可以使用下面的腳本來創建 exec 語句並遍歷結果並執行它們,但我希望有一些更精簡的東西。我找遍了整個地方,找不到任何東西,但是有'
SELECT 'EXECUTE sp_AddRoleMember ''' + roles.name + ''', ''' + users.name + '''' FROM sys.database_principals users INNER JOIN sys.database_role_members link ON link.member_principal_id = users.principal_id INNER JOIN sys.database_principals roles ON roles.principal_id = link.role_principal_id WHERE roles.name = 'TheNewRole'
Adam Machanic 有一篇關於替換 xp_execresultset 的部落格文章,它在 SQL 2000 中做了你想做的事:Replacing xp_execresultset in SQL Server 2005