雪花返回 CTE 中的列

问题描述 投票:0回答:2

我有 2 个不同的数据库角色。我们称他们为“角色 A”和“角色 B”。

我有以下疑问:

with part_1 as (

select col_1
from table
where id  <= 100


)

select p1.col_1
from part_1 as p1;

使用“角色 A”,整个查询会失败,但 CTE 内部不会失败,我只是突出显示并运行它。

如果我切换到“角色B”,我这样做没有任何问题。

有什么建议或建议吗?我不明白两个不同的角色怎么会产生不同的结果。

sql snowflake-cloud-data-platform roles
2个回答
0
投票

大概是因为角色 A 没有“表”的选择权限,但角色 B 有。

角色的全部意义在于为不同的用户提供不同的访问权限,因此这种行为既是预期的也是期望的


0
投票

缺少一些权限差异,正如您所注意到的,两者似乎都在运行

using role role_a;

select col_1
from table
where id  <= 100;

using role role_b;

select col_1
from table
where id  <= 100;

所有工作都意味着双方都可以访问桌子..

它是一个表而不是一个视图?

select get_ddl('table','database.schema.table_name');

或者这对两个角色都有效吗

WITH part_1 AS (
    SELECT col_1 FROM table
    WHERE id <= 100
)
select p1.*
from part_1 as p1;

在此之后,我会问一个支持问题,因为这听起来很像一个错误,但了解其原因需要支持来深入了解实际情况。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.