查找在多个SQL Server上分配的Active Directory组/角色

时间:2013-03-14 15:38:18

标签: sql-server powershell active-directory

我一直在互联网上搜索,试图找到与此相关的任何内容,但我做得不够。我试图找到一种方法来查询多个SQL服务器并搜索特定的Active Directory组及其在该服务器上分配的角色。

如果有可能,任何人都有任何想法;你能指出我正确的方向或可能是我错过的链接吗?

由于

1 个答案:

答案 0 :(得分: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