当前,我正在尝试将成员添加到使用TSQL的表格项目中的角色中,该功能在将服务器链接到表格项目中时效果很好。代码如下:
EXEC ('{
"createOrReplace": {
"object": {
"database": "Sales",
"role": "Restricted"
},
"role": {
"name": "Restricted",
"modelPermission": "read",
"members": [
{
"memberName": "DOMAIN\USER",
"memberId": "S-1-2-3-4568039"
}
]
}
}
}
') AT [Linked Tabular Server]
但这也删除了我的“受限”角色(tablePermissions)的行过滤器。有没有任何方法或工作可以将成员添加到表格模型角色而无需编写tablePermissions脚本。或在我的代码中使用当前的tablePermissions(硬编码添加tablePermissions可以正常工作,但不是解决方案,因为我有很多具有不同tablePermissions的表格模型。
经过硬编码的代码如下:
EXEC ('{
"createOrReplace": {
"object": {
"database": "Sales",
"role": "Restricted"
},
"role": {
"name": "Restricted",
"modelPermission": "read",
"members": [
{
"memberName": "DOMAIN\USER",
"memberId": "S-1-2-3-4568039"
}
],
"tablePermissions": [
{
"name": "Affiliates",
"filterExpression": " Affiliates[AffiliateID]=LOOKUPVALUE(bridgeAffiliates[AffiliateID],bridgeAffiliatesUsers[User],USERNAME(),bridgeAffiliatesUsers[AffiliateID],Affiliates[AffiliateID])"
}
]
}
}
}
') AT [Linked Tabular Server]
我的最终目标是在不丢失filterExpressions的情况下将成员添加到夜间工作中。非常感谢您的帮助!
如果可以通过链接服务器连接查询当前的filterExpressions,也可以将其存储在变量中,然后动态构建此代码