Sql-Server

將登錄名映射到使用者

  • January 15, 2018

在我的生產系統上,我使用CPSDOM\mconnors. 當我執行SELECT CURRENT_USER;它返回CPSDOM\mconnors

我們在我們的數據庫上使用 Windows 身份驗證。

在我的測試系統上,我使用CPSDOM\mconnors. 當我執行SELECT CURRENT_USER;它返回dbo

所以我去了我的測試系統security/logins/ Login Properties/UserMapingCPSDOM\mconnors為使用者輸入。當我跑的時候SELECT CURRENT_USER,我還是回來了dbo。我回去Login properties/UserMapping驗證更改是否仍然存在,並且確實存在。

我錯過了什麼?

如果您希望在兩個系統上獲得相同的結果,您的選擇是:

  1. 如果您總是想知道正在使用的伺服器級 Windows 帳戶,請將您的程式碼更改為ORIGINAL_LOGIN()在這兩個地方使用,而不是依賴數據庫映射(或使用SUSER_SNAME())。
  2. 將您的登錄名添加到sysadmin生產系統上的角色。
  3. 在您的測試系統上創建一個新登錄名(或至少確保您知道sa密碼),從角色中刪除此登錄sysadmin名,並確保他們不再是數據庫所有者(例如ALTER AUTHORIZATION ON DATABASE::dbname TO sa;)。然後,您可能需要手動將它們添加為使用者並在數據庫中添加權限(對不起,這是我最不喜歡的選項,我不想在我的系統上弄亂我自己的登錄來測試它)。

這意味著您對數據庫具有數據庫所有者(“db_owner”)權限。

您可以在“數據庫屬性”的“使用者映射”選項卡中看到這一點。

在此處輸入圖像描述

在這裡你可以看到目前使用者和登錄。

在此處輸入圖像描述

謝謝

引用自:https://dba.stackexchange.com/questions/97899