2016-03-03 40 views
0

我們最近將所有數據庫都移到了新服務器上(很痛苦),而且我們在共同問題上感受到了這一點。但這個問題似乎並沒有一個具體的解決方案。在新服務器上遷移數據庫後,SQL用戶登錄失敗

所有用戶(以及使用這些用戶的所有應用程序)無法連接或無法查詢數據庫。

我們可以在SQL管理工作室看到這些用戶,他們在這裏,在底部的安全文件中,就像一切正常一樣。

如果我刪除這些用戶之一,然後重新創建它,所有相同的參數,它突然工作。

我知道安全,登錄,用戶權限,我有什麼擁有模式的想法,但不是更多。

但似乎還有更多東西,或者有些東西我看不清楚。將用戶綁定到特定sql服務器的東西,當您將數據庫移動到新服務器時,這些內容不會更新。

這是什麼東西?任何想法 ?任何想法如何應用正確的價值呢?

+0

可能您的用戶映射未被遷移。打開任何無法登錄的sql登錄的屬性並檢查「用戶映射」部分,它應該映射到您的特定DB。 –

+0

當我打開屬性,我看到folowings:一般,擁有shema,會員,securables,擴展屬性... –

+1

嗯...這意味着你打開用戶特別是數據庫的屬性,而不是SQL登錄。 SQL登錄位於所有Dbs之外的「安全」文件夾中。檢查是否存在與DB用戶相對應的sql登錄名。 –

回答

1

如註釋中所述,服務器級別Security \ Logins需要映射到數據庫級別Security \ Users。我已經看到過去由MSDN頁面提供的腳本,這些腳本可幫助您在從一個SQL Server實例遷移到另一個SQL Server實例時腳本化登錄。現在,這聽起來像你有「孤兒用戶」,並可能看看這個頁面:https://msdn.microsoft.com/en-us/library/ms175475(v=sql.110).aspx

這可能會提供一些幫助來清理它們。我對確切的命令並不熟悉,但如果您仍然可以訪問舊服務器,您還應該能夠將用戶的安全映射編寫到數據庫中。

+0

我想我可以循環遍歷所有用戶,檢查舊數據庫,並使用這些命令對移動的用戶應用某種映射。我不知道我是否會......聽起來比一個一個地做 –

相關問題