我有一个拥有地毯清洁业务的客户,我们在多租户数据库模型中拥有他所有不同加盟商的数据,我们希望将这些数据移到雪花数据仓库中。我不想为每个客户构建一个单独的数据库,因为那样我就必须使每个数据库都保持最新的数据模型。我想使用1个数据模型来全部统治。我在每个记录中都有一个租户ID,用于标识被特许人的数据。我想为每个加盟商提供一套凭证,让他们可以在其中连接所选的分析工具(Tableau,Power Bi等),并且只能访问适用于他们的行。有没有一种方法可以保护他们根据用户在每个表中看到的行。换句话说,某种行级访问控制类似于postgres中的配置文件。有没有更好的方法来处理这种情况?最终,我希望维护和管理最少数量的Elt作业和数据模型。
答案 0 :(得分:3)
这是以太Secure Views或Reader Accounts的目的。
我们同时使用这两种产品,它们在技术上的麻烦/设置成本几乎相同。但是我们正在使用内部工具来构建/更改模式。
答案 1 :(得分:0)
扩展Simeon的答案:
您可以拥有一个Snowflake帐户,并为每个加盟商创建一个Snowflake角色和用户。这些角色可以访问安全视图,该视图使用Snowflake文档的this example中的CURRENT_ROLE / CURRENT_USER上下文函数。
您必须具有角色->租户ID“映射表”,该ID在“安全视图”中用于将行限制为正确的加盟商。