Nie jestem pewien, czy wybrałem właściwy tytuł dla tego pytania. tak naprawdę chcę, biorąc pod uwagę konkretnego użytkownika Windows AD, chciałbym znaleźć listę grup Windows AD (loginów), które mają dostęp do konkretnej bazy danych na tym serwerze
po uruchomieniu następującego zapytania
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
na moim serwerze
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 17 czerwca 2011 00:54:03 Prawa autorskie (c) Microsoft Corporation Standard Edition (64-bit) na Windows NT 6.1 (kompilacja 7601: Service Pack 1)
Otrzymuję następujące wyniki (częściowa lista):
Muszę znać wszystkie uprawnienia, które ma określony login. ten login ma dostęp do mojego serwera / baz danych poprzez grupy AD.
1) do jakich grup AD, z powyższej listy, należy mój login?
Robiłem to poniżej, ale naprawdę chciałbym znaleźć listę grup AD (które mają dostęp do tego serwera zgodnie z powyższym obrazkiem), do których należy ten użytkownik.
Najpierw wykonuję jako dany użytkownik
EXECUTE AS LOGIN='mycompany\HThorne'
DECLARE @User VARCHAR(20)
SELECT @USER = SUBSTRING(SUSER_SNAME(),
CHARINDEX('\', SUSER_SNAME()) + 1, LEN(SUSER_SNAME()))
upewniam się, że mam odpowiednie poświadczenia
SELECT @USER
, SUSER_SNAME()
,SYSTEM_USER
, USER_NAME()
, CURRENT_USER
, ORIGINAL_LOGIN()
, USER
,SESSION_USER
Przechodzę do konkretnej bazy danych i używam uprawnień fn_my_permissions - uruchamianych jako dany użytkownik
use WebDataImportStage
go
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
REVERT
i to daje mi wynik poniżej:


