Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在CTE中返回列的雪花_Sql_Snowflake Cloud Data Platform_Roles - Fatal编程技术网

Sql 在CTE中返回列的雪花

Sql 在CTE中返回列的雪花,sql,snowflake-cloud-data-platform,roles,Sql,Snowflake Cloud Data Platform,Roles,我有两个不同的数据库角色。让我们把它们称为角色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,我在这方面没有任何问题 有什么建议或建议吗?我不明白两个不同的角色如何产生不同的结果。可能是因为角色A在“表”上没有选择权限

我有两个不同的数据库角色。让我们把它们称为角色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,我在这方面没有任何问题


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

可能是因为角色A在“表”上没有选择权限,但角色B有


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

如此短的权限差异,正如您所注意到的,两者似乎都在运行

using role role_a;

select col_1
from table
where id  <= 100;

using role role_b;

select col_1
from table
where id  <= 100;
或者这对两种角色都有效

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

在这之后,我会问一个支持问题,因为这听起来很像一个bug,但是理解为什么需要支持来挖掘实际情况。

您的查询中没有角色、a或B。我对这个问题感到困惑。您指的是数据库角色吗?正确,在每个RMDB中,您可以扮演不同的角色数据分析师、所有者等。确切的错误消息是什么?失败时,Col_1不存在这是一个错误,我修复了它。这是我的想法,但当我在角色a中突出显示CTE的内部时,我可以很好地运行它,没有问题。
WITH part_1 AS (
    SLEECT col_1 FROM table
    WHERE id <= 100
)
select p1.*
from part_1 as p1;