2009-01-20 91 views
9

我已備份並將MS SQL Server 2005數據庫還原到新服務器。將備份還原到其他服務器 - 用戶權限

什麼是重新創建登錄,用戶和用戶權限的最佳方式?

在SQL Server 2000的企業管理器上,我能夠編寫登錄腳本,爲用戶編寫腳本併爲用戶分別編寫腳本。然後我可以一個接一個地運行,剩下的唯一手動步驟是設置登錄密碼(由於安全原因,不需要編寫腳本)

在SQL Server 2005的Management Studio中,這看起來不太可能,因此一切都很複雜,耗時的。 (我最終必須編寫整個數據庫的腳本,從新數據庫中刪除所有登錄名和用戶,運行腳本,然後通過錯誤消息的混合物拖移以查看哪些工作以及哪些沒有工作。)

任何人都有這方面的經驗和建議?

回答

14

最簡單的方法是使用微軟的sp_help_revlogin,這是一個存儲過程,用於腳本所有SQL Server登錄,默認和密碼,並保持相同的SID。

你可以找到它這個知識庫文章中:

http://support.microsoft.com/kb/918992

+0

雖然沒有出現做用戶權限。 (如GRANT EXECUTE和GRANT SELECT等,等等) – MatBailie 2009-01-20 15:26:48

0

我使用Red Gate的SQL Compare產品(http://www.red-gate.com/products/SQL_Compare/index.htm)。還有其他類似的產品,但我沒有理由尋找它,因爲SQL比較從未讓我失望。

您會發現它比您當前的要求更有用,因爲它有助於同步所有類型的數據庫對象,而不僅僅是登錄和權限。

+0

我們有一個類似的「數據庫差異」工具。不幸的是,我們的客戶不... – MatBailie 2009-01-20 15:22:25

2

運行以下命令:

EXEC sp_change_users_login 'Report' 

這將顯示所有孤立用戶的列表,例如:

enter image description here

Now例如對於每個用戶執行此腳本,例如

exec sp_change_users_login 'Update_One', 'UserNameExample', 'UserNameExample' 

這解決了我的問題。

相關問題