Je ne sais pas si j'ai choisi le bon titre pour cette question. ce que je recherche vraiment, c'est que, étant donné un utilisateur Windows AD individuel, j'aimerais connaître la liste des groupes Windows AD (connexions) qui ont accès à une base de données spécifique sur ce serveur.
quand j'exécute la requête suivante
select
name,
principal_id,
type,
type_desc,
default_schema_name,
create_date,
modify_date,
owning_principal_id,
sid,
is_fixed_role
from sys.database_principals
sur mon serveur
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 17 juin 2011 00:54:03 Copyright (c) Microsoft Corporation Standard Edition (64 bits) sur Windows NT 6.1 (Build 7601: Service Pack 1)
J'obtiens les résultats suivants (liste partielle):
J'ai besoin de connaître toutes les autorisations d'une connexion particulière. cette connexion a accès à mon serveur / bases de données via des groupes AD.
1) À quels groupes AD, dans la liste ci-dessus, ma connexion appartient-elle?
Je l'ai fait ci-dessous, mais j'aimerais vraiment connaître la liste des groupes AD (qui ont accès à ce serveur selon l'image ci-dessus) auxquels cet utilisateur appartient.
J'exécute d'abord en tant qu'utilisateur en question
EXECUTE AS LOGIN='mycompany\HThorne'
DECLARE @User VARCHAR(20)
SELECT @USER = SUBSTRING(SUSER_SNAME(),
CHARINDEX('\', SUSER_SNAME()) + 1, LEN(SUSER_SNAME()))
je m'assure que j'ai les bonnes informations d'identification
SELECT @USER
, SUSER_SNAME()
,SYSTEM_USER
, USER_NAME()
, CURRENT_USER
, ORIGINAL_LOGIN()
, USER
,SESSION_USER
Je vais à la base de données spécifique et utilise les fn_my_permissions - exécuté en tant qu'utilisateur en question
use WebDataImportStage
go
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
REVERT
et cela me donne le résultat ci-dessous: