SQL Server’da Tüm Login ve Tüm Windows Group Altındaki Tüm Loginlerin Listesini Almak
Herkese merhaba,
Bu yazıda SQL Server’da tüm login ve tüm windows group altındaki tüm loginlerin listesini almak ilgili bilgi vermeye çalışacağım.
SQL Server’da bazı durumlarda tüm login ve tüm windows group altındaki tüm loginlerin listesini almak isteyebilirsiniz.
Aşağıdaki kodu kullanarak siz de bu işlemi rahatlıkla yapabilirsiniz.
DECLARE @LoginList TABLE
(
LoginName NVARCHAR(256),
[Type] VARCHAR(8),
[Privilege] VARCHAR(8),
[Mapped Login Name] NVARCHAR(256),
WindowsGroupName NVARCHAR(256)
);
DECLARE @WindowsGroupName NVARCHAR(256);
--SQL/Windows Logins
INSERT INTO @LoginList
SELECT name,
'user',
'user',
name,
''
FROM sys.server_principals
WHERE type IN ( 'S', 'U' );
DECLARE c1 CURSOR FOR
--Windows Groups
SELECT name
FROM sys.server_principals
WHERE type = 'G';
OPEN c1;
FETCH NEXT FROM c1
INTO @WindowsGroupName;
WHILE @@fetch_status <> -1
BEGIN
INSERT INTO @LoginList
(
LoginName,
[Type],
[Privilege],
[Mapped Login Name],
WindowsGroupName
)
EXEC xp_logininfo @acctname = @WindowsGroupName, @option = 'members';
FETCH NEXT FROM c1
INTO @WindowsGroupName;
END;
CLOSE c1;
DEALLOCATE c1;
SELECT LoginName,
WindowsGroupName
FROM @LoginList;
Yukarıdaki kod bloğunu çalıştırdığınızda aşağıdaki sonucu göreceksiniz.
Görüldüğü üzere tüm login ve tüm windows group altındaki tüm loginlerin listesi alınmış oldu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.