Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como encontrar o nome de login, o nome de usuário do banco de dados ou as funções do usuário do domínio sqlserver que não possui seu próprio login?


Entendo que o login dos usuários do domínio está mapeado no grupo AD?

Você deve ter em mente que o usuário pode estar em vários grupos do AD e cada um deles pode ser mapeado de alguma forma no banco de dados, o que pode ser um pouco confuso. Também significa que você precisa de algo com vários resultados :)

Tente isto:
select * from sys.server_principals where type_desc = 'WINDOWS_GROUP' and is_member(name) = 1

Eu acho que ele deve capturar corretamente todos os logins do Windows Group que serão vinculados a usuários específicos. Depois disso, você pode juntá-lo para usuários do banco de dados, ou seja:
Select u.name from YourDB.sys.syslogins l
inner join YourDB.sys.sysusers u
on l.sid = u.sid
where l.loginname = ANY (select * from sys.server_principals where type_desc = 'WINDOWS_GROUP' and is_member(name) = 1)

Você deve ter em mente que - até o fim - você pode precisar lidar com conjuntos inteiros em vez de valores únicos.