全部产品
Search
文档中心

Hologres:Model izin Hologres

更新时间:Jan 14, 2026

Setelah masuk ke instans Hologres, pengguna harus memiliki izin yang diperlukan untuk melakukan operasi. Topik ini menjelaskan izin yang dibutuhkan untuk pengembangan di instans Hologres.

Alur autentikasi Hologres

Gambar berikut menunjukkan alur autentikasi lengkap untuk pengguna, mulai dari menghubungkan ke Hologres hingga menggunakannya:Hologres authentication flow

Konsep pengguna

Saat Akun Alibaba Cloud terhubung ke Hologres, akun tersebut harus dibuat sebagai pengguna Hologres. Administrator perlu mengeksekusi pernyataan create user "xxx". Jika tidak, pesan error role "xxx" does not exist akan muncul. Pengguna berada pada level instans; menambahkan atau menghapus pengguna berarti menambahkan atau menghapusnya dari instans tersebut. Operasi tertentu dalam instans, seperti membuat tabel, memerlukan izin tingkat database. Izin diberikan dalam database tertentu dan hanya berlaku untuk objek dalam database tersebut, tidak berlaku lintas database.

Catatan

Anda dapat mengeksekusi perintah select * from pg_user; untuk melihat super administrator dari instans saat ini.

Model izin

Hologres kompatibel dengan PostgreSQL 11. Untuk memberikan izin pengembangan, Anda dapat menggunakan pernyataan otorisasi PostgreSQL standar, yang dikenal sebagai model otorisasi PostgreSQL standar. Granularitas izin dalam PostgreSQL bersifat detail halus, dan sintaks otorisasinya kompleks. Untuk menyederhanakan kontrol akses, Hologres juga menyediakan Model izin sederhana.

Tabel berikut menjelaskan perbedaan antara Model izin sederhana dan model otorisasi PostgreSQL standar, serta skenario penggunaannya.

Jenis izin

Skenario

Deskripsi

Model otorisasi PostgreSQL standar

Model ini cocok untuk skenario yang memerlukan kontrol akses ketat. Misalnya, Anda dapat memberikan izin kepada pengguna tertentu pada tabel tertentu.

Model otorisasi PostgreSQL standar memberikan izin dengan granularitas dan fleksibilitas tinggi. Anda dapat memberikan izin kepada pengguna pada tabel tertentu. Namun, sintaks otorisasinya kompleks. Untuk informasi selengkapnya tentang cara memberikan izin, lihat Model otorisasi PostgreSQL standar.

Simple Permission Model (SPM)

Model ini menyediakan kontrol akses tingkat database dan cocok untuk skenario pengelolaan izin kasar.

Model izin sederhana adalah model pra-kemas berdasarkan dimensi database. Setiap kelompok pengguna memiliki izin yang sesuai yang tidak dapat diubah. Model ini memenuhi sebagian besar kebutuhan otorisasi dan menyederhanakan operasi pemberian izin. Untuk informasi selengkapnya tentang cara memberikan izin, lihat Model izin sederhana.

Schema-level Permission Model (SLPM)

Model ini menyediakan kontrol akses tingkat schema dan cocok untuk skenario yang memerlukan izin detail halus tetapi juga alur otorisasi yang disederhanakan.

Model izin sederhana tingkat schema adalah model pra-kemas berdasarkan dimensi schema. Setiap kelompok pengguna memiliki izin yang sesuai yang tidak dapat diubah. Model ini mendukung kontrol akses yang lebih detail halus dan menyederhanakan operasi otorisasi. Untuk informasi selengkapnya tentang cara memberikan izin, lihat Menggunakan model izin sederhana tingkat schema.

Memberikan izin

Untuk menggunakan Hologres dalam pengembangan, pengguna harus diberikan izin tertentu. Dua tabel berikut menunjukkan operasi dan izin yang diperlukan berdasarkan model otorisasi PostgreSQL standar dan Model izin sederhana. Berikan izin kepada pengguna sesuai dengan operasi yang diperlukan dan model izin yang digunakan.

Catatan

Super administrator secara default memiliki semua izin yang tercantum dalam tabel.

Operasi dalam model otorisasi PostgreSQL standar

Izin yang diperlukan

Pernyataan otorisasi

CREATE USER(ROLE)

DROP USER(ROLE)

CREATEROLE

Contoh berikut memberikan izin kepada pengguna A untuk membuat role.

alter user A createrole;

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

Izin CONNECT pada database dan izin CREATE pada schema yang sesuai

Contoh berikut memberikan izin kepada pengguna A untuk membuat tabel dalam schema xx.

GRANT CREATE ON SCHEMA xx TO A;

Secara default, setiap pengguna memiliki izin untuk membuat tabel dalam schema public.

SELECT

Izin USAGE dan izin SELECT pada schema yang sesuai

Berikan izin sebagai berikut:

GRANT USAGE ON SCHEMA xx to A;
GRANT SELECT ON TABLE xx TO A;
GRANT SELECT ON ALL TABLES IN SCHEMA xx TO A;

INSERT

UPDATE

DELETE

TRUNCATE

Izin USAGE dan izin INSERT, UPDATE, DELETE, atau TRUNCATE pada schema yang sesuai

Berikan izin sebagai berikut:

GRANT USAGE ON SCHEMA xx to A;
GRANT [INSERT/UPDATE/DELETE/TRUNCATE] ON TABLE xx TO A;
GRANT [INSERT/UPDATE/DELETE/TRUNCATE] ON ALL TABLES IN SCHEMA xx TO A;

ALTER TABLE

Pemilik tabel (Pemilik tabel dapat diubah menggunakan ALTER OWNER)

Jangan gunakan GRANT untuk menghapus tabel. Sebagai gantinya, eksekusi perintah ALTER TABLE xx OWNER TO A; untuk mengubah pemilik tabel menjadi A. Kemudian, pengguna A dapat menghapus tabel tersebut.

DROP TABLE

CREATE DATABASE

CREATEDB

Contoh berikut memberikan izin kepada pengguna A untuk membuat database:

ALTER USER A CREATEDB;

DROP DATABASE

Pemilik database

Jangan gunakan GRANT untuk menghapus database. Sebagai gantinya, eksekusi perintah ALTER DATABASE xx OWNER TO A; untuk mengubah pemilik database menjadi A. Kemudian, pengguna A dapat menghapus database tersebut.

CREATE EXTENSION

Pemilik database

-

GRANT

REVOKE

Pengguna yang memiliki izin yang sesuai dan izin GRANT OPTION

Contoh berikut memberikan izin operasi GRANT kepada pengguna:

GRANT [Privilege] TO A WITH GRANT OPTION;

Otorisasi berdasarkan model izin

Simple Permission Model (SPM)

Schema-level Permission Model (SLPM)

Operasi

Izin yang diperlukan

Pernyataan otorisasi

Izin yang diperlukan

Pernyataan otorisasi

CREATE USER(ROLE)

DROP USER(ROLE)

DB admin

Berikan izin admin kepada pengguna dengan salah satu dari dua cara berikut:

  • Cara 1: call spm_grant('<dbname>_admin','A');

  • Cara 2: call spm_create_user('A', '<dbname>_admin');

Penting

SPM tidak mendukung pemberian izin kepada pengguna kustom yang nama penggunanya diakhiri dengan admin, developer, writer, viewer, atau all_users.

DB admin

Berikan izin admin kepada pengguna dengan salah satu dari dua cara berikut:

  • Cara 1: call slpm_grant('<dbname>.<schema>.admin', 'A');

  • Cara 2: call slpm_create_user('A', '<dbname>.<schema>.admin');

Penting

SLPM tidak mendukung pemberian izin kepada pengguna kustom yang nama penggunanya diakhiri dengan admin, developer, writer, viewer, atau all_users.

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

Izin dari kelompok pengguna superuser, admin, atau developer

Lihat pernyataan otorisasi SPM dalam tabel ini untuk memberikan izin admin atau developer kepada pengguna.

Izin dari superuser, atau kelompok pengguna admin atau developer pada schema tersebut

Lihat pernyataan otorisasi SLPM dalam tabel ini untuk memberikan izin admin atau developer pada schema tersebut kepada pengguna.

SELECT

Izin dari kelompok pengguna superuser, admin, developer, writer, atau viewer

Lihat pernyataan otorisasi SPM dalam tabel ini untuk memberikan izin admin, developer, writer, atau viewer kepada pengguna.

Izin dari superuser, atau kelompok pengguna admin, developer, writer, atau viewer pada schema tersebut

Lihat pernyataan otorisasi SLPM dalam tabel ini untuk memberikan izin admin, developer, writer, atau viewer pada schema tersebut kepada pengguna.

INSERT

UPDATE

DELETE

TRUNCATE

Izin dari kelompok pengguna superuser, admin, developer, atau writer

Lihat pernyataan otorisasi SPM dalam tabel ini untuk memberikan izin admin, developer, atau writer kepada pengguna.

Izin dari superuser, atau kelompok pengguna admin, developer, atau writer pada schema tersebut

Lihat pernyataan otorisasi SLPM dalam tabel ini untuk memberikan izin admin, developer, writer, atau viewer pada schema tersebut kepada pengguna.

ALTER TABLE

Izin dari kelompok pengguna superuser, admin, atau developer

Lihat pernyataan otorisasi SPM dalam tabel ini untuk memberikan izin admin atau developer kepada pengguna.

Izin dari superuser, atau kelompok pengguna admin atau developer pada schema tersebut

Lihat pernyataan otorisasi SLPM dalam tabel ini untuk memberikan izin admin atau developer pada schema tersebut kepada pengguna.

DROP TABLE

CREATE DATABASE

DROP DATABASE

CREATE EXTENSION

DB admin

Lihat pernyataan otorisasi SPM dalam tabel ini untuk memberikan izin admin kepada pengguna.

DB admin

Lihat pernyataan otorisasi SLPM dalam tabel ini untuk memberikan izin admin pada schema tersebut kepada pengguna.

GRANT

REVOKE

DB admin

Contoh berikut menunjukkan cara memberikan dan mencabut izin untuk pengguna A:

call spm_grant('role', 'A');
call spm_revoke('role', 'A');

DB admin

Contoh berikut menunjukkan cara memberikan dan mencabut izin untuk pengguna A:

call slpm_grant('role', 'A');
call slpm_revoke('role', 'A');