雪花中的出站特权是啥
Posted
技术标签:
【中文标题】雪花中的出站特权是啥【英文标题】:what are outbound privileges in snowflake雪花中的出站特权是什么 【发布时间】:2020-03-05 15:27:45 【问题描述】:在雪花grant ownership documentation中,提到了“传出权限”。
什么是“传出权限?
这是可选参数“复制/撤销当前授权”的一部分。
它说,“转移对象的所有权以及对象上任何现有出站权限的副本。”
我想弄清楚什么是“出站权限”。
编辑: 这是我运行的一个测试。我看不出有什么不同。
create or replace view sandbox.test_schema.my_test_view
as
select 1 a;
grant ownership on view sandbox.test_schema.my_test_view to role ABC
show grants on view sandbox.test_schema.my_test_view
特权=所有权;授予_to=角色;受赠人名称=ABC;授予选项=真; grant_by=ABC
如果我添加复制授权
如果我运行的一切都完全相同,除了我复制授予权限
grant ownership on view sandbox.test_schema.my_test_view to role ABC copy current grants
在视图上显示授权的结果是相同的。
有没有“复制当前授权”产生影响的例子?
【问题讨论】:
更新了我的答案以涵盖您的最新问题。 传出特权是对对象的任何特权/授予,而不是所有权(如果您接受所有权是一种特权)。例如,如果您将 SELECT 权限显式授予拥有该对象的角色,则更改所有权将失败,并显示“相关授权退出”。 【参考方案1】:“出站权限”是指对象上的现有权限(当前授权)。
所以您更新了您的示例并询问是否存在“复制当前授权”产生影响的示例?
假设有另一个角色 (DEF),我们在示例视图上授予了选择权限:
create role DEF;
grant select on sandbox.test_schema.my_test_view to role DEF;
在这种情况下,以下命令将失败,并显示“SQL 执行错误:存在从安全的 'SANDBOX.TEST_SCHEMA.MY_TEST_VIEW' 到角色 'DEF' 的相关权限 'SELECT' 的授予”:
grant ownership on view sandbox.test_schema.my_test_view to role ABC;
要解决这个问题:
1) 我们可以手动删除现有的授权,然后重试第一条语句:
revoke select on sandbox.test_schema.my_test_view from role DEF;
grant ownership on view sandbox.test_schema.my_test_view to role ABC;
2) 我们可以自动删除现有的授权:
grant ownership on view sandbox.test_schema.my_test_view to role ABC revoke current grants;
3) 我们可以在更改所有权的同时保留现有的赠款:
grant ownership on view sandbox.test_schema.my_test_view to role ABC copy current grants;
因此,如果对象上存在现有授权,则“复制/撤销当前授权”会有所不同。
【讨论】:
感谢您的回答。我刚刚通过我所做的测试为我的问题添加了一个编辑,希望能看到不同。您是否有任何文档或示例来说明“传出权限”? 您是否同意“传出权限”是授予对象所有者角色以外的角色的权限?以上是关于雪花中的出站特权是啥的主要内容,如果未能解决你的问题,请参考以下文章