SharePoint 有一个“检查权限”按钮。在这里,您可以从 Active Directory 中选择一个用户,它会神奇地遍历组,并根据用户所在的组向您显示该用户在站点上的所有访问权限。
这是一个很长的镜头,因为我已经使用 SQL Server 很长一段时间了并且从未听说过这个,但以防万一我错过了什么......
SQL Server 中有类似的东西吗?现在,检查权限包括查看在实例上登录的 AD 组,并手动通过 AD 以查看谁在哪个组中,然后手动查看数据库权限。像 SharePoint 这样的“检查权限”可以节省大量时间。
您可以使用以下代码完成此操作:
或者您可以模拟该登录名并像这样使用 sys.login_token :
我能够将这里的建议与我躺在身边的旧脚本结合起来,提出以下内容,它将显示用户所在的所有组,以及它们映射到的数据库角色。请注意,这没有经过彻底测试,但它给出了我需要的结果。
目前,我所知道的唯一方法是创建一个链接到您的 Active Directory 的服务器。一旦你这样做了,你就可以创建一个存储过程来通过 Openquery 查询 AD。
希望这可以帮助
是的,完全可以做到。您必须模拟用户,
EXECUTE AS
然后使用HAS_PERMS_BY_NAME
或检查权限sys.fn_my_permissions
。我强烈建议您不要尝试遍历 AD 和/或尝试从
sys.dataabse_permissions
.