Bu soru için doğru başlığı seçip seçmediğimden emin değilim. ne sonra gerçekten, tek bir Windows AD kullanıcı göz önüne alındığında, bu sunucudaki belirli bir veritabanına erişimi olan Windows AD gruplarının (oturum açma) listesini bulmak istiyorum
aşağıdaki sorguyu çalıştırdığımda
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
sunucumda
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 17 Haziran 2011 00:54:03 Telif Hakkı (c) Windows NT 6.1'de Microsoft Corporation Standard Edition (64 bit) (Derleme 7601: Service Pack 1)
Aşağıdaki sonuçları alıyorum (kısmi liste):
Belirli bir girişin sahip olduğu tüm izinleri bilmem gerekiyor. bu girişin AD grupları üzerinden sunucum / veritabanlarıma erişimi var.
1) yukarıdaki listeden hangi AD grupları girişe ait?
Bunu aşağıda yapıyorum, ama gerçekten bu kullanıcının ait olduğu AD gruplarının (yukarıdaki resme göre bu sunucuya erişimi olan) listesini bulmak istiyorum.
Önce söz konusu kullanıcı olarak yürütüyorum
EXECUTE AS LOGIN='mycompany\HThorne'
DECLARE @User VARCHAR(20)
SELECT @USER = SUBSTRING(SUSER_SNAME(),
CHARINDEX('\', SUSER_SNAME()) + 1, LEN(SUSER_SNAME()))
doğru kimlik bilgilerine sahip olduğumdan emin olurum
SELECT @USER
, SUSER_SNAME()
,SYSTEM_USER
, USER_NAME()
, CURRENT_USER
, ORIGINAL_LOGIN()
, USER
,SESSION_USER
Belirli bir veritabanına gidin ve fn_my_permissions kullanın - söz konusu kullanıcı olarak çalıştırın
use WebDataImportStage
go
SELECT * FROM fn_my_permissions (NULL, 'DATABASE');
GO
REVERT
ve bu bana aşağıdaki sonucu veriyor: