【发布时间】:2021-07-13 00:45:48
【问题描述】:
用例
创建一个新角色,该角色只能SELECT 访问所有架构中的所有表,但也不能在各自的数据库和架构中创建表。
脚本
USE ROLE ACCOUNTADMIN;
CREATE ROLE DUMMY_ROLE;
GRANT ROLE DUMMY_ROLE TO USER "myself@gmail.com"
GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE DUMMY_ROLE;
GRANT USAGE ON DATABASE PRD_DWH TO ROLE DUMMY_ROLE;
GRANT USAGE ON SCHEMA PRD_DWH.ANALYTICS TO ROLE DUMMY_ROLE;
问题
一旦我创建了上述角色并担任该角色,它仍然允许我创建表,尽管没有授予 CREATE TABLE 特权权限。
USE ROLE DUMMY_ROLE;
CREATE TABLE PRD_DWH.ANALYTICS.DELETEME (ID INTEGER);
即使我明确撤销CREATE TABLE(也允许我在DUMMY_ROLE 中创建表),这也不起作用:
USE ROLE ACCOUNTADMIN;
REVOKE CREATE TABLE ON SCHEMA PRD_DWH.ANALYTICS FROM ROLE DUMMY_ROLE;
我想了解如何防止这种行为。
【问题讨论】:
标签: snowflake-cloud-data-platform