Я не впевнений, чи обрав правильну назву для цього питання. те, про що я насправді - це, враховуючи окремого користувача Windows AD, я хотів би дізнатися список груп Windows AD (логінів), які мають доступ до певної бази даних на цьому сервері
коли я запускаю наступний запит
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
на моєму сервері
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 17 червня 2011 00:54:03 Авторські права (c) Стандартна версія Microsoft Corporation (64-розрядна версія) для Windows NT 6.1 (Build 7601: Service Pack 1)
Я отримую такі результати (частковий список):
Мені потрібно знати всі дозволи, які має певний логін. цей вхід має доступ до мого сервера / баз даних через групи AD.
1) до яких груп оголошень з наведеного вище списку належить мій логін?
Я робив це нижче, але я дуже хотів би дізнатися список груп AD (які мають доступ до цього сервера відповідно до наведеної картини), до якого належить цей користувач.
Спочатку я виконую як відповідний користувач
EXECUTE AS LOGIN='mycompany\HThorne'
DECLARE @User VARCHAR(20)
SELECT @USER = SUBSTRING(SUSER_SNAME(),
CHARINDEX('\', SUSER_SNAME()) + 1, LEN(SUSER_SNAME()))
я переконуюсь, що я маю правильні дані
SELECT @USER
, SUSER_SNAME()
,SYSTEM_USER
, USER_NAME()
, CURRENT_USER
, ORIGINAL_LOGIN()
, USER
,SESSION_USER
Я переходжу до конкретної бази даних і використовую fn_my_permissions - запускаю як користувач, про який йде мова
use WebDataImportStage
go
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
REVERT
і це дає мені результат нижче: