0

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

如果可能的话,如果有人有任何想法;您能否指出我正确的方向或我可能错过的链接。

谢谢

4

1 回答 1

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
于 2013-03-14T16:25:57.660 回答