我有一个 Azure SQL 托管实例,我需要在该实例上对某些表实施行级安全性以过滤某些用户查询的数据。
我的所有用户都使用 Azure Active Directory 身份验证进行身份验证,并且他们可以根据他们在我的 SQL 实例上配置的特定 AAD 组的成员身份访问数据库。(即在 SQL 中,我没有为登录或数据库访问或选择权限配置任何单个用户,只有 AAD 组)。
我正在尝试找到一种使用相同模型实现行级安全性的方法。所以我想通过引用我需要过滤掉表中行的特定 AAD 组来实现它。
例如
用户Bob属于 AAD 组DepartmentA。
DepartmentA组在我的 SQL 托管实例上启用以登录,并被授予SELECT
对数据库 DatabaseA 中所有表的权限
我想通过编写一个策略来过滤TableA中具有行级安全性的行,该策略让我的DepartmentA组中的所有用户只能看到与其部门相关的记录(假设部门名称写在表列上)。
有什么方法可以实现吗?
我发现了类似的功能IS_MEMBER()
,IS_ROLEMEMBER()
但它们似乎只适用于普通的 Windows 域,而不适用于 Azure AD。
谢谢