操作 | 所需权限 | 示例步骤 |
创建External Schema | | 指定当前项目,并授予项目CreateSchema权限。 -- 指定当前项目
use test_lakehouse_project;
-- 为RAM用户授予项目的CreateSchema权限
GRANT CreateSchema ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
(可选)如果开启了项目级别租户资源访问控制,且已经完成外部数据源与当前项目的挂载配置,在项目内对用户的授权如下: -- 为当前项目空间增加RAM账号体系
ADD accountprovider ram;
-- 添加ram用户
ADD USER `RAM$xxx@test.aliyunid.com:test_user`;
-- 创建项目角色
CREATE role test_lakhouse_role;
-- 为项目角色添加policy,允许使用外部数据源
put policy D:\bin\allow.policy ON role test_lakhouse_role;
-- 将RAM用户添加到项目角色
GRANT role test_lakhouse_role TO `RAM$xxx@test.aliyunid.com:test_user`;
其中allow.policy文件内容如下: {
"Version": "1",
"Statement": [{
"Action": "odps:Usage",
"Effect": "Allow",
"Resource": ["acs:odps:*:servers/fs_hive"]
}]
}
创建External Schema。 CREATE EXTERNAL SCHEMA IF NOT EXISTS es_hive3
with fs_hive
ON 'default' ;
|
查询全部External Schema | Project的CreateInstance和List权限。 | 为RAM用户授予项目CreateInstance权限。 GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
授予项目List权限。 GRANT List ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
查看全部Schema。 SHOW schemas;
|
查询某个External Schema | Schema的Describe权限。 | 为RAM用户授予某Schema的Describe权限。 GRANT DESCRIBE ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
查询某个External Schema。 DESC SCHEMA es_hive3;
|
修改External Schema属性 | 目前暂不支持修改External Schema属性。 |
删除某个External Schema | Schema的Drop权限。 | 为RAM用户授予某Schema的Drop权限。 GRANT DROP ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
删除某个External Schema。 DROP SCHEMA es_hive3;
|
使用某个External Schema | | 指定当前使用某个External Schema。 USE SCHEMA es_hive3;
若项目从两层模式升级为三层模式,需要对指定的Schema授予Describe权限。 GRANT DESCRIBE ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
|
查询某个External Schema下的表 | Schema内表的Select权限 | 为RAM用户授予某Schema内某张表的Select权限。 GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;
查询某个External Schema下的表。 SELECT * FROM es_hive3.t1;
|
将某个External Schema下的表数据导入至内部表 | | 为RAM用户授予项目CreateTable权限。 GRANT CreateTable ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
授予项目CreateInstance权限。 GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
授予对某张表Select权限。 GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;
导入某个External Schema中的表数据至内部表。 CREATE TABLE default.t1_copy_ram3 AS SELECT * FROM t1;
|