SQL Server 2005 Получить логин от имени пользователя - PullRequest
4 голосов
/ 29 октября 2009

Как я могу указать имя пользователя для конкретной базы данных и получить логин для этого пользователя в запросе?

Спасибо.

Ответы [ 3 ]

8 голосов
/ 29 октября 2009

Используя Представления каталога безопасности , вы можете получить основную информацию о базе данных и сервере, например:

USE [database_name]

SELECT sp.name AS login_name
FROM sys.server_principals sp
JOIN sys.database_principals dp ON (sp.sid = dp.sid)
WHERE dp.name = 'user_name'

Я не могу найти представление, которое предоставит вам всех пользователей, независимо от базы данных, поэтому его необходимо запустить в контексте базы данных входа в систему.

2 голосов
/ 29 октября 2009

Или вы можете использовать системную хранимую процедуру sp_helpuser .

exec sp_helpuser 'Username'
2 голосов
/ 29 октября 2009
select * 
FROM
sys.server_principals AS log
WHERE
(log.type in ('U', 'G', 'S', 'C', 'K') AND log.principal_id not between 101 and 255 AND log.name <> N'##MS_AgentSigningCertificate##')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...