Sql-Server

Scipt 使用者角色和權限

  • September 21, 2016

我在 SQL Server v 11.0.6020 中遇到使用者帳戶問題。我需要執行一個腳本,該腳本將允許複製主要使用者帳戶:“TrainID1”以及所有使用者權限和權限,以便當我讓其他使用者登錄時,他們可以訪問數據庫並執行應用程序連接到 SQL DB。所以我有使用者:‘TrainID1’,並且該使用者連接到 SQL DB:‘TrainID_01’ DB,所以我需要在 SQL 安全性中允許所有其他數據庫的 TrainID2 到 42 個使用者帳戶,例如:TrainID_02、TrainID_03等等…

我建議您查看 Kenneth Fisher 的過程sp_dbpermissions

我一直在使用它,它允許您列出數據庫中特定使用者的所有權限,並為您提供所有腳本來複製所有這些權限並將它們應用於不同的數據庫。

如果您也想在不同的伺服器上應用它們,那也可以,但不要忘記先創建伺服器登錄。

您可以通過dbatools powershell 模組完成此操作。

有一個Export-SqlLogin cmdlet幾乎可以完全按照您的描述進行操作。根據文件,此 cmdlet 將:

將 Windows 和 SQL 登錄導出到 T-SQL 文件…帶有 SID、密碼、defaultdb、伺服器角色和安全對象、數據庫權限和安全對象、登錄屬性(強制密碼策略、到期等)。

如果需要複製導出的登錄N次,可以修改導出的T-SQL腳本。但是,您可能需要考慮不能使用相同的 SID 創建所有 N,因此您可能希望在重命名/複製登錄名時簡單地刪除 SID。

引用自:https://dba.stackexchange.com/questions/150173