首页 > 解决方案 > 由于雪花中的权限,无法克隆数据库

问题描述

创建了一个名为 DEV_USER 的用户,属于角色 DEV_ROLE。

GRANT USAGE ON WAREHOUSE MYWH TO ROLE DEV_ROLE;
CREATE USER DEV_USER PASSWORD = 'secrets' COMMENT = 'Dev User' LOGIN_NAME = 'DEV_USER' DISPLAY_NAME = 'Development Only User' DEFAULT_ROLE = 'DEV_ROLE'  DEFAULT_WAREHOUSE = 'MYWH' MUST_CHANGE_PASSWORD = FALSE;
ALTER USER DEV_USER SET DEFAULT_NAMESPACE = 'PUBLIC';
GRANT ROLE DEV_ROLE TO USER DEV_USER;
GRANT ROLE DEV_ROLE TO USER MYUSERACCT;
GRANT ALL ON DATABASE DEV_DB TO ROLE DEV_ROLE WITH GRANT OPTION;
GRANT ALL ON DATABASE "DEV_DB" TO ROLE "DEV_ROLE" WITH GRANT OPTION;
GRANT ALL ON SCHEMA "DEV_DB"."PUBLIC" TO ROLE "DEV_ROLE"  WITH GRANT OPTION; 

我使用 MYUSERACCT 登录。我默认为 DEV_ROLE。我去 DATABASES 并尝试将 DEV_DB 克隆到 DEV_DB_CLONE 但收到以下错误:

无法创建数据库 DEV_DB_CLONE。SQL 访问控制错误:权限不足,无法对帐户 'XX12345' 进行操作

显然,如果我将用户设置为 SYSADMIN 或 ACCOUNTADMIN,它将起作用。但是当我设置为 DEV_ROLE 时,我需要它来克隆。

我错过了什么?

标签: databasepermissionsclonesnowflake-cloud-data-platform

解决方案


安全访问控制权限说克隆你需要CREATE DATABASE通过角色的全局权限

CREATE USER DEV_USER1 PASSWORD = 'secrets' COMMENT = 'Dev User' LOGIN_NAME = 'DEV_USER' DISPLAY_NAME = 'Development Only User';
CREATE ROLE CLONE_ROLE;
GRANT CREATE DATABASE ON ACCOUNT TO ROLE CLONE_ROLE;
GRANT ROLE CLONE_ROLE TO USER DEV_USER1;

DROP USER DEV_USER1;
DROP ROLE CLONE_ROLE;

推荐阅读