7
我想通過SQL Server 2005/2008中的T-SQL腳本創建用戶。我運行下面的SQL來檢查用戶是否存在和創建用戶,如果它不:SQL Server:如何檢查數據庫中是否存在一個Windows用戶,但使用不同的用戶名
IF NOT EXISTS (SELECT *
FROM sys.database_principals
WHERE name = N'MyDomain\MyUser')
BEGIN
CREATE USER [MyDomain\MyUser] FOR LOGIN [MyDomain\MyUser] WITH default_schema=[dbo];
SELECT 1;
END
ELSE
BEGIN
SELECT 0;
END
不幸的是,這並不在Windows帳戶MYDOMAIN \ MYUSER已經在數據庫中,但下一個工作不同的名字。例如,如果MyDomain \ MyUser是創建數據庫的帳戶,那麼它將已經在dbo用戶的數據庫中。如果是這樣,我得到了以下錯誤的情況下:
Msg 15063, Level 16, State 1, Line 1 The login already has an account under a different user name.
如何檢查如果Windows用戶MYDOMAIN \ MYUSER已經在數據庫中的用戶,即使它是根據不同的用戶名?
夢幻般的答案。謝謝達米安。 – 2011-06-02 09:35:35
我需要從'sys.syslogins'中選擇,而'SUSER_SID' – 2012-02-20 13:46:32