Berikan izin pada tabel eksternal federasi
Pembuat skema eksternal menjadi pemiliknya. Topik ini menjelaskan cara memberikan izin pada skema atau tabel-tabelnya kepada pengguna lain.
Karena MaxCompute tidak menyimpan metadata sumber data dalam mode lakehouse secara persisten, kebijakan izin mengelola akses berdasarkan nama objek sumber data. Jika nama objek sumber data diubah, izin terkait menjadi tidak valid. Anda harus mencabut izin tersebut dengan menggunakan perintah
REVOKEatau dengan menghapus kebijakan izin. Jika kebijakan lama tidak dihapus, objek baru dengan nama yang sama mungkin mewarisi izin tersebut, sehingga memberikan akses yang tidak disengaja kepada pengguna atas objek baru tersebut.Jika otorisasi objek tingkat penyewa diaktifkan untuk proyek, Anda harus memasang proyek saat ini ke sumber data eksternal sebelum membuat skema eksternal. Jika tidak, operasi akan gagal.
Asumsikan proyek yang digunakan untuk mengelola skema eksternal bernama test_lakehouse_project.
Buat skema eksternal
Izin yang diperlukan
Izin
CreateSchemapada proyek.Jika kontrol akses resource penyewa tingkat proyek diaktifkan, Anda memerlukan izin
Usagepada server asing.
Prosedur
Tentukan proyek saat ini dan berikan izin
CreateSchema.-- Setel proyek saat ini. use test_lakehouse_project; -- Berikan izin CreateSchema pada proyek kepada RAM user. GRANT CreateSchema ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;(Opsional) Jika kontrol akses resource penyewa tingkat proyek diaktifkan dan Anda telah memasang sumber data eksternal ke proyek saat ini, berikan izin kepada pengguna dalam proyek tersebut.
-- Tambahkan sistem akun RAM ke proyek saat ini. ADD accountprovider ram; -- Tambahkan RAM user. ADD USER `RAM$xxx@test.aliyunid.com:test_user`; -- Buat role proyek. CREATE role test_lakhouse_role; -- Lampirkan kebijakan izin ke role proyek untuk mengizinkan penggunaan sumber data eksternal. put policy /path/to/allow.policy ON role test_lakhouse_role; -- Berikan role proyek kepada RAM user. GRANT role test_lakhouse_role TO `RAM$xxx@test.aliyunid.com:test_user`;File
allow.policyberisi:{ "Version": "1", "Statement": [{ "Action": "odps:Usage", "Effect": "Allow", "Resource": ["acs:odps:*:servers/fs_hive"] }] }Buat skema eksternal.
CREATE EXTERNAL SCHEMA IF NOT EXISTS es_hive3 with fs_hive ON 'default' ;
Daftar semua skema eksternal
Izin yang diperlukan
Izin
CreateInstancedanListpada proyek.Prosedur
Berikan izin
CreateInstancepada proyek kepada RAM user.GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;Berikan izin
Listpada proyek kepada RAM user.GRANT List ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;Daftar semua skema.
SHOW schemas;
Deskripsikan skema eksternal
Izin yang diperlukan
Anda memerlukan izin
Describepada skema.Prosedur
Berikan izin
Describepada skema kepada RAM user.GRANT DESCRIBE ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;Deskripsikan skema eksternal.
DESC SCHEMA es_hive3;
Ubah properti skema eksternal
Saat ini Anda tidak dapat mengubah properti skema eksternal.
Hapus skema eksternal
Izin yang diperlukan
Anda memerlukan izin
Droppada skema.Prosedur
Berikan izin
Droppada skema kepada RAM user.GRANT DROP ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;Hapus skema eksternal.
DROP SCHEMA es_hive3;
Gunakan skema eksternal
Izin yang diperlukan
Tidak diperlukan izin khusus untuk proyek model tiga tingkat standar.
Jika proyek ditingkatkan dari model dua tingkat ke model tiga tingkat, Anda memerlukan izin
Describepada skema.
Prosedur
Tentukan skema eksternal yang akan digunakan.
USE SCHEMA es_hive3;Jika proyek ditingkatkan dari model dua tingkat ke model tiga tingkat, Anda harus memberikan izin
Describepada skema yang ditentukan.GRANT DESCRIBE ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
Daftar tabel dalam skema eksternal
Izin yang diperlukan
Anda memerlukan izin
Listpada skema.Prosedur
Berikan izin
Listpada skema kepada RAM user.
GRANT List ON schema es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;Daftar tabel dalam skema eksternal.
SHOW tables IN es_hive3;
Kueri tabel dalam skema eksternal
Izin yang diperlukan
Anda memerlukan izin
Selectpada tabel.Prosedur
Berikan izin
Selectpada tabel tertentu dalam skema kepada RAM user.GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;Kueri tabel dalam skema eksternal.
SELECT * FROM es_hive3.t1;
Impor data dari tabel eksternal
Izin yang diperlukan
Anda memerlukan izin
Selectpada tabel eksternal.Anda memerlukan izin
CreateTabledanCreateInstancepada proyek.
Prosedur
Berikan izin
CreateTablepada proyek kepada RAM user.GRANT CreateTable ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;Berikan izin
CreateInstancepada proyek kepada RAM user.GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;Berikan izin
Selectpada tabel.GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;Impor data dari tabel eksternal ke tabel internal baru.
CREATE TABLE default.t1_copy_ram3 AS SELECT * FROM t1;