在不删除行过滤器的情况下将成员添加到表格角色

时间:2018-07-25 17:03:32

标签: roles tabular members

当前,我正在尝试将成员添加到使用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,也可以将其存储在变量中,然后动态构建此代码

0 个答案:

没有答案