Jac*_*ack 33 security sql-server logins
当我执行此 SQL 时:
USE ASPState
GO
IF NOT EXISTS(SELECT * FROM sys.sysusers WHERE NAME = 'R2Server\AAOUser')
CREATE USER [R2Server\AAOUser] FOR LOGIN [R2Server\AAOUser];
GO
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
该登录名已有一个使用不同用户名的帐户。
我怎么知道我的登录帐户的这个不同的用户名是什么?
Mar*_*ian 34
这意味着登录 [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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)