控制可以使用 2 个不同的 Active Directory 组访问 Synapse Analytics Serverless Pool/SQL Server 的用户列表

问题描述

我有以下场景

  1. 我在我的数据库(在 Synapse Analytics Serverless Pool 上)中创建了 3 个数据库角色(角色指向 Active Directory 组)。每个角色代表每个基于角色的用户可以访问的数据集(可能有重叠的用户,即用户 1 也可以在角色 1 和角色 2 上)。这些 AD 组由不同的团队配置并可供我使用,我需要重用相同的 AD 组来授予对我托管的 Synapse 无服务器池/实例的访问权限,以连接到 ADLS Gen-2 并阅读数据(数据探索用例)。 下面的示例 sql 脚本

    sql>>从外部提供者创建用户 ADGroupA;

    sql>>创建角色财务;

    sql>>ALTER ROLE [财务] 添加成员 [ADGroupA];

    sql>>Grant select on SCHEMA ::finance to Finance;

    sql>>授予对数据库范围凭据的引用 ::SynapseManagedIdentity 到 ADGroupA ;

上面列出的脚本是为 ADGroupB 和 ADGroupC 执行的 2. ADGroupA有20个用户,ADGroupB有10个用户,ADGroupC有5个用户 我需要为 15 个用户授予对无服务器池的访问权限(通过查看 15 个用户的 ADGroupA、ADGroupB 和 ADGroupC 访问权限以确保 - 他们只能访问所需的数据集/对象) 我在处理这种情况时遇到了一个挑战; Serverless Pool 的用户集是来自角色 A、角色 B 和角色 C 的子集用户;因此,由于我使用 ADGroupA、ADGroupB 和 ADGroupC 创建我的角色 - 我最终授予所有 35 个用户的访问权限;但我应该只授予 15 个用户(可能是 ADGroupD 的一部分)的访问权限。

否 - 我的问题是 - 有没有办法通过对我创建的每个角色执行 ADGroupA 和 ADGroupD 的 INTERSECT 来授予访问权限?

enter image description here

添加关于预期结果的额外信息

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)