雪花中的出站特权是啥

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;

因此,如果对象上存在现有授权,则“复制/撤销当前授权”会有所不同。

【讨论】:

感谢您的回答。我刚刚通过我所做的测试为我的问题添加了一个编辑,希望能看到不同。您是否有任何文档或示例来说明“传出权限”? 您是否同意“传出权限”是授予对象所有者角色以外的角色的权限?

以上是关于雪花中的出站特权是啥的主要内容,如果未能解决你的问题,请参考以下文章

arcmap 是啥中了?做啥用的?

雪花中的Bytea替代品是啥

雪花算法到底是啥原理?附 Java 实现!

MySQL 中的内存授权表的作用是啥

IP 地址(在源列下)在 AWS 安全组的入站和出站规则中代表/或含义是啥?

雪花算法到底是啥原理?附 Java 实现!