我想用角色PUBLIC运行语句DESCRIBE TABLE dwh.ods.users
。我已经授予角色公共特权:
grant all privileges on schema ods to public;
但是,当我尝试运行查询时,会出现以下错误:SQL编译错误:
Table 'DWH.ODS.USERS' does not exist or not authorized.
对于USERADMIN角色,它是有效的。我该怎么解决?感谢
您还必须在数据库上授予USAGE。授予架构上的所有权限并不意味着授予数据库的权限。
GRANT USAGE ON DATABASE <database> TO ROLE <role>;
在您的情况下:
GRANT USAGE ON DATABASE dwh TO ROLE public;
你可以在这里找到更多关于USAGE的信息:https://docs.snowflake.com/en/user-guide/security-access-control-privileges.html
请尝试在表上授予SELECT,在架构和数据库上授予USAGE:
grant usage on database DWH to public;
grant usage on schema DWH.ODS to public;
grant select on table DWH.ODS.USERS to public;