我一直在互联网上搜索,试图找到与此相关的任何内容,但我做得不够。我试图找到一种方法来查询多个SQL服务器并搜索特定的Active Directory组及其在该服务器上分配的角色。
如果有可能,任何人都有任何想法;你能指出我正确的方向或可能是我错过的链接吗?
由于
答案 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