Ich bin mir nicht sicher, ob ich den richtigen Titel für diese Frage gewählt habe. Was ich wirklich möchte, ist, dass ich bei einem bestimmten Windows AD-Benutzer die Liste der Windows AD-Gruppen (Anmeldungen) herausfinden möchte, die Zugriff auf eine bestimmte Datenbank auf diesem Server haben
wenn ich die folgende Abfrage ausführen
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
in meinem Server
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 17. Juni 2011, 00:54:03 Uhr Copyright (c) Microsoft Corporation Standard Edition (64-Bit) unter Windows NT 6.1 (Build 7601: Service Pack 1)
Ich erhalte folgende Ergebnisse (Teilliste):
Ich muss alle Berechtigungen eines bestimmten Logins kennen. Dieses Login hat über AD-Gruppen Zugriff auf meine Server / Datenbanken.
1) Zu welchen AD-Gruppen aus der obigen Liste gehört mein Login?
Ich habe dies unten getan, aber ich möchte wirklich die Liste der AD-Gruppen (die Zugriff auf diesen Server gemäß dem obigen Bild haben) herausfinden, zu denen dieser Benutzer gehört.
Zuerst führe ich als fraglicher User aus
EXECUTE AS LOGIN='mycompany\HThorne'
DECLARE @User VARCHAR(20)
SELECT @USER = SUBSTRING(SUSER_SNAME(),
CHARINDEX('\', SUSER_SNAME()) + 1, LEN(SUSER_SNAME()))
Ich stelle sicher, dass ich die richtigen Anmeldeinformationen habe
SELECT @USER
, SUSER_SNAME()
,SYSTEM_USER
, USER_NAME()
, CURRENT_USER
, ORIGINAL_LOGIN()
, USER
,SESSION_USER
Ich gehe zu der spezifischen Datenbank und benutze die fn_my_permissions - als der fragliche Benutzer ausgeführt
use WebDataImportStage
go
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
REVERT
und das gibt mir das Ergebnis unten: