Skip to content

Instantly share code, notes, and snippets.

@Vincent-233
Last active October 13, 2023 06:53
Show Gist options
  • Save Vincent-233/2c0d3dc29063564852157d0bd3603f9b to your computer and use it in GitHub Desktop.
Save Vincent-233/2c0d3dc29063564852157d0bd3603f9b to your computer and use it in GitHub Desktop.
MSSQL查询每个账号在每个数据库里的角色名(供参考)
-- 查询所有登录名在 SQL Server 实例级别的角色
SELECT
sp.name AS LoginName,
sp.type_desc AS LoginType,
sp.default_database_name AS DefaultDatabase,
sp.default_language_name AS DefaultLanguage,
sp.create_date AS CreateDate,
server_role.name AS ServerRole
FROM sys.server_principals AS sp
LEFT JOIN sys.server_role_members AS srm
ON sp.principal_id = srm.member_principal_id
LEFT JOIN sys.server_principals AS server_role
ON srm.role_principal_id = server_role.principal_id
WHERE sp.type IN ('U', 'G', 'S', 'A'); -- 这将包括 SQL Server 账户、Windows AD 组、服务账户和匿名登录
-- 注意:如果需要过滤特定角色,请根据需要修改 WHERE 子句。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment