从雪花 DWH 中的架构撤消创建表

时间:2021-07-13 00:45:48

标签: snowflake-cloud-data-platform

用例

创建一个新角色,该角色对所有架构中的所有表仅具有 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;

我想了解如何防止这种行为。

1 个答案:

答案 0 :(得分:1)

您对 PUBLIC 角色有任何授权吗?

show grants to role PUBLIC;

您可能知道,PUBLIC 角色是自动授予的,每个用户都可以访问。因此,您需要确保此角色未获得您尝试测试的权限,并相应地从 PUBLIC 角色中撤销。

相关问题