Sql 在CTE中返回列的雪花
我有两个不同的数据库角色。让我们把它们称为角色A和角色B 我有以下疑问: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在“表”上没有选择权限
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;