2013-03-14 1 views
0

Я искал интернет, пытаясь найти что-либо в этом отношении, и я упал. Я пытаюсь найти способ запроса нескольких SQL-серверов и поиска определенной группы Active Directory и ролей, назначенных ей на этом сервере.Поиск группы Active Directory/ролей, назначенных на нескольких SQL-серверах

Если у кого-то есть идеи, если это возможно; не могли бы вы указать мне в правильном направлении или ссылку, которую, возможно, я пропустил.

Благодаря

+0

@MuhammadHani У меня есть часть Powershell для поражения каждого SQL-сервера без проблем. Моя проблема заключается в том, чтобы получить созданные пользователем роли базы данных. И все, на что я указываю, показывает только роли сервера. – Timmmers

ответ

0

Ниже скрипт поможет вам ... с помощью Powershell, вы можете запустить его на несколько серверов.

Исходя из вашей потребности, вы можете изменить сценарий.

SELECT 
    [srvprin].[name] [server_principal], 
    [srvprin].[type_desc] [principal_type], 
    [srvperm].[permission_name], 
    [srvperm].[state_desc] 
FROM [sys].[server_permissions] srvperm 
    INNER JOIN [sys].[server_principals] srvprin 
    ON [srvperm].[grantee_principal_id] = [srvprin].[principal_id] 
WHERE [srvprin].[type] IN ('S', 'U', 'G') and [srvprin].[type_desc] like 'WINDOWS%' 
ORDER BY [server_principal], [permission_name]; 
go 


CREATE TABLE #ADMembership 
(account_name SYSNAME, 
[type] NVARCHAR(10), 
privilege NVARCHAR(10), 
mapped_login_name NVARCHAR(max), 
permission_path NVARCHAR(max)) 

DECLARE @login SYSNAME; 
SET @login = SUSER_SNAME(); 

INSERT INTO #ADMembership 
EXEC XP_LOGININFO @login,'ALL'; 

-- select the data or do what ever u want ... 
SELECT * FROM #ADMembership; 
-- clean up 
DROP TABLE #AdMembership