SQL Server 2005 意外地從公用角色中刪除了用戶,無法將使用者新增回角色

SQL Server 2005 意外地從公用角色中刪除了用戶,無法將使用者新增回角色

我正在嘗試建立一個只能存取特定資料庫的資料庫使用者帳戶,無法讀取或變更其他資料庫,也無法更改任何其他帳戶的憑證。

在解決連線問題時,我意外地從「公用」伺服器角色中刪除了該用戶,這導致我無法從 Management Studio 存取該帳戶的伺服器

獲得存取權限的唯一方法是將使用者新增至 sysadmin 角色,但這不起作用,因為使用者現在可以存取所有資料庫。

現在,當我嘗試將使用者新增回公用伺服器角色時,我收到一條錯誤訊息,指出角色中的成員身分無法變更。

奇怪的是,當我右鍵單擊使用者並查看屬性時,它聲稱該使用者是公共角色的成員,並且不允許我更改成員資格。

問題:

  • 因此,如果公共角色成員身份無法更改,那麼我首先如何從角色中刪除使​​用者呢?
  • 如何重新新增該用戶,以便該用戶重新獲得 Management Studio 的存取權限?

答案1

為了幫助了解更多細節,以下是它的外觀,以便您可以準確地說出哪一部分不正確。您有一個伺服器登入名,以及您遇到問題的帳戶的資料庫使用者。在伺服器和資料庫級別,您將看到公共角色(伺服器角色和資料庫角色)。公共伺服器角色的屬性不會顯示用戶,但登入的屬性將顯示所有資料庫的公共資料庫角色(它將被選中,並且無法取消選中)。公共資料庫角色的屬性也不會顯示任何成員,資料庫使用者的屬性也不會顯示公共角色。由於所有這些,我不相信您將用戶從公共角色中刪除。

如果您想嘗試刪除並重新建立用戶,可以先嘗試進入資料庫並刪除資料庫用戶。這將留下登入名,您可以進入其屬性,並且在「使用者映射」下,不應檢查資料庫。現在您應該能夠檢查資料庫(因為資料庫使用者已被刪除),並選擇您需要的任何角色。如果這不起作用,您還可以刪除登入名稱和資料庫用戶,以嘗試清除所有內容。為了對使用者進行最後一次檢查,您可以執行以下 SQL:

use database_name
exec sp_change_users_login 'Report'

這將向您顯示任何孤立用戶,這可能意味著您的用戶仍然有問題。這通常可以透過以下方式解決:

use database_name
exec sp_change_users_login 'Auto_Fix', 'username'

為了在問題變得更長之前嘗試解決這個問題,可能還有其他原因導致該用戶的連線問題。如果這些都不起作用,您可以發佈登入時收到的錯誤訊息嗎?

相關內容