谷歌今天宣布了此功能,但我没有看到任何文档.如何向用户授予行级权限?
例如,假设我有一个private.all_customers包含模式的表{customer:string, id:integer, is_secret:boolean}.
我想给我们对销售人员的字段访问customer和id,但不会is_secret,而且,我想给给他们只能访问那些行其中is_secret = false.我怎么能做到这一点?
行级权限的关键部分是您实际上授予视图权限.该视图定义了您希望委派用户查看的行和列,而不允许他们访问基础表.
为此,请创建将返回您希望用户查看的行和列的视图.对于上面的示例,视图将如下所示:
SELECT customer, id FROM private.all_customers where is_secret = false
Run Code Online (Sandbox Code Playgroud)
然后我可以将其保存为视图"public.public_customers",并public与分析人员共享数据集.
需要注意的是,到目前为止,但这不 意味着该分析师将有机会获得这些数据.如果他们现在试图运行它们,它们将会出错.仅仅访问一个读取表的视图并不能访问该表上的基础数据.如果确实如此,那么任何人都可以创建一个视图来读取他们想要查看的任何数据.
第二步是将该视图添加到private数据集的ACL中.这样做的记录是视图应该有权访问数据.这样,private数据集的所有者可以审核谁有权访问其数据,并在必要时撤消它.
将视图添加到ACL的最简单方法是使用BigQuery Web UI.如果单击privateWeb UI中数据集名称旁边的箭头并单击"共享此数据集",则会弹出一个对话框,允许您编辑ACL.在该对话框的底部,它将显示"添加人员"和左侧的可点击图标.如果单击该图标,则应该可以选择"授权视图".选择后,您应输入project:dataset.view视图的完全限定名称.在我们的例子中,那就是my-project:public.public_customers.点击"添加",它将显示在列表中,然后点击"保存更改"进行提交.
将视图添加到ACL后,任何有权访问"公共"数据集的人都应该能够对public.public_customers视图运行查询.
有关此功能的更高级用法(允许您为不同用户提供不同的答案),请参阅以下问题:如何在不在BigQuery中创建单独视图的情况下为不同用户提供对不同行的访问权限?
| 归档时间: |
|
| 查看次数: |
2778 次 |
| 最近记录: |