SQL Server 2005从用户名获取登录名

时间:2009-10-29 12:42:07

标签: sql-server sql-server-2005

如何为特定数据库指定用户名并在查询中获取该用户的登录信息?

感谢。

3 个答案:

答案 0 :(得分:8)

使用Security Catalog Views,您可以获取数据库和服务器主体信息,如下所示:

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'

我无法找到能够为所有用户提供的视图,无论数据库是什么,因此需要在登录数据库的上下文中运行。

答案 1 :(得分:2)

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##')

答案 2 :(得分:2)

或者您可以使用系统存储过程sp_helpuser

exec sp_helpuser 'Username'