移動SQL Server資料庫時出現孤立使用者權限問題的解決辦法

來源:互聯網
上載者:User
癥狀


雖然術語“登入”和“使用者”經常交換使用,但它們之間有很大的不同。登入用於使用者身分識別驗證,而資料庫使用者帳戶用於資料庫訪問和許可權驗證。登入通過安全識別 符 (SID) 與使用者關聯。訪問 SQL Server 服務器需要登入。驗證特定登入是否有效過程稱為“身分識別驗證”。登入必須與 SQL Server 資料庫使用者相關聯。您使用使用者帳戶控制資料庫中執行的活動。如果資料庫中不存在針對特定登入的使用者帳戶,使用該登入的使用者即使能夠串連到 SQL Server 服務器,也無法訪問資料庫。但是,該情形的唯一例外是當資料庫包含“guest”使用者帳戶時。與使用者帳戶不關聯的登入將被映射到 guest 使用者。相反,如果存在資料庫使用者,但沒有與其關聯的登入,則該使用者將無法登入到 SQL Server 服務器中。

將資料庫恢複到其他伺服器時,資料庫中包含一組使用者和許可權,但可能沒有相應的登入或者登入所關聯的使用者可能不是相同的使用者。這種情況被稱為存在“孤立使用者”。

 

孤立使用者疑難解答


當您將Database Backup恢複到另一台伺服器時,可能會遇到孤立使用者的問題。以下情形說明了該問題並闡述如何加以解決。

1. 向主要資料庫添加一個登入,並將預設資料庫指定為 Northwind:

Use master go sp_addlogin 'test', 'password', 'Northwind'
2. 向剛建立的使用者授予存取權限:

Use Northwind go sp_grantdbaccess 'test'
3. 備份資料庫。

BACKUP DATABASE Northwind
TO DISK = 'C:/MSSQL/BACKUP/Northwind.bak'
4. 將資料庫恢複到其他 SQL Server 服務器:

RESTORE DATABASE Northwind
FROM DISK = 'C:/MSSQL/BACKUP/Northwind.bak'

恢複的資料庫包含名為“test”的使用者,但沒有相應的登入,這就導致“test”成為孤立使用者。

5. 現在,為了檢測孤立使用者,請運行此代碼:

Use Northwind go sp_change_users_login 'report'

輸出中列出了所有登入,其中包含 Northwind 資料庫的 sysusers 系統資料表和主要資料庫的 sysxlogins 系統資料表中不匹配的條目。


解決孤立使用者問題的步驟


1. 為前一步中的孤立使用者運行以下命令:

Use Northwind
go
sp_change_users_login 'update_one', 'test', 'test'

這樣,就將伺服器登入“test”與 Northwind 資料庫使用者“test”重新串連起來。sp_change_users_login 預存程序還可以使用“auto_fix”參數對所有孤立使用者執行更新,但不推薦這樣做,因為 SQL Server 會嘗試按名稱匹配登入和使用者。大多數情況下這都是可行的;但是,如果使用者與錯誤登入關聯,該使用者可能擁有錯誤的許可權。

2. 在上一步中運行代碼後,使用者就可以訪問資料庫了。然後使用者可以使用 sp_password 預存程序更改密碼:

Use master 
go
sp_password NULL, 'ok', 'test'

此預存程序不能用於 Microsoft Windows NT 安全帳戶。通過 Windows NT 網路帳戶串連到 SQL Server 服務器的使用者是由 Windows NT 授權的;因此,這些使用者只能在 Windows NT 中更改密碼。

只有 sysadmin 角色的成員可以更改其他使用者的登入密碼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.