我一直在搜索互联网,试图找到与此相关的任何内容,但我没能做到。我正在尝试找到一种方法来查询多个 SQL 服务器并搜索特定的 Active Directory 组及其在该服务器上分配的角色。
如果可能的话,如果有人有任何想法;您能否指出我正确的方向或我可能错过的链接。
谢谢
我一直在搜索互联网,试图找到与此相关的任何内容,但我没能做到。我正在尝试找到一种方法来查询多个 SQL 服务器并搜索特定的 Active Directory 组及其在该服务器上分配的角色。
如果可能的话,如果有人有任何想法;您能否指出我正确的方向或我可能错过的链接。
谢谢
下面的脚本将帮助您...使用 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