Sql-Server

登錄已經有一個使用不同使用者名的帳戶

  • October 12, 2021

當我執行這個 SQL 時:

USE ASPState
GO
IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser')
CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser];
GO

我收到以下錯誤:

該登錄名已經有一個使用不同使用者名的帳戶。

我如何知道我的登錄帳戶的這個不同的使用者名是什麼?

這意味著登錄

$$ R2Server\AAOUser $$已映射到該數據庫中的使用者。或者,換句話說,另一個數據庫使用者正在使用這個登錄名。您可以通過以下查詢查看正在使用您的登錄名的數據庫使用者:

use YourDB
go
SELECT su.name as DatabaseUser
FROM sys.sysusers su
join sys.syslogins sl on sl.sid = su.sid
where sl.name = 'test' -- login

PS:不使用兼容性視圖的腳本版本:

Select sp.name as LoginName, sp.type_desc as LoginType,
   dp.name as DBUser, dp.type_desc as UserType
from sys.server_principals sp
join sys.database_principals dp on dp.sid = sp.sid
where sp.name = 'test' -- your login

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