2020年10月20日 星期二

【SQL Server】MS SQL Server 15023 錯誤

本機匯入備份的資料庫後,因為需用特定的使用者方可存取,而登錄的用戶設置完無法與資料庫關聯,而原資料庫中的使用者設定又無法刪除,就可以用這個方式解決~


參考來源:http://jeffchang001.blogspot.com/2008/09/ms-sql-server-2005-15023.html


SQL Server中"登錄"與"用戶"的區別,"登錄"用於用戶身份驗證,而資料庫"用戶"帳戶用於資料庫訪問和許可權驗證。登錄通過安全識別符 (SID) 與用戶關聯。將資料庫恢復到其他伺服器時,資料庫中包含一組用戶和許可權,但可能沒有相應的登錄或者登錄所關聯的用戶可能不是相同的用戶。這種情況被稱為存在"獨立用戶"。 此時是不能通過新建登錄或者是對同名登錄授予對應資料庫的“用戶”許可權來解決登錄問題,因為SQL Server會報出"錯誤15023:當前資料庫中已存在用戶或角色",為了解決這個問題,需要調用系統存儲過程sp_change_users_login,具體用法如下:


Use Northwind

go

sp_change_users_login 'update_one', 'test', 'test'


其中

1.Northwind為存在獨立用戶的資料庫,

2.update_one是存儲過程的參數,表示只處理一個用戶,

3.第一個test是"用戶",

4.後一個test是"登錄",

以上這個SQL表示將伺服器登錄"test"與 Northwind 資料庫用戶"test"重新起來。這樣就可以正常使用資料庫了。

沒有留言:

張貼留言