All Products
Search
Document Center

Hologres:Pengantar model izin Hologres

Last Updated:Aug 23, 2026

Topik ini menjelaskan cara Hologres melakukan autentikasi pengguna dan memperkenalkan tiga model izin yang dapat digunakan untuk memberikan izin pengembangan: model PostgreSQL standar, Simple Permission Model (SPM), dan Schema-level Permission Model (SLPM).

Alur autentikasi Hologres

Gambar berikut menunjukkan alur autentikasi lengkap:Hologres authentication flow

Pengguna

Sebelum Akun Alibaba Cloud dapat mengakses Hologres, administrator harus menjalankan create user "xxx" untuk mendaftarkannya sebagai pengguna Hologres. Jika tidak, error role "xxx" does not exist akan dikembalikan. Pengguna berada di tingkat instans. Menambahkan atau menghapus pengguna berarti menambahkan atau menghapus pengguna tersebut dari instans. Operasi seperti membuat tabel memerlukan izin tingkat database, yang diberikan dalam database tertentu dan tidak dapat digunakan lintas database.

Catatan

Jalankan select * from pg_user; untuk melihat superuser instans saat ini.

Model izin

Hologres kompatibel dengan PostgreSQL 11 dan mendukung otorisasi PostgreSQL standar (model expert). Karena izin PostgreSQL bersifat detail halus dan sintaks otorisasinya kompleks, Hologres juga menyediakan dua model yang disederhanakan: Simple Permission Model (SPM) dan Schema-level Permission Model (SLPM).

Tabel berikut membandingkan ketiga model tersebut.

Model izin

Skenario

Deskripsi

Standard PostgreSQL authorization model (expert model)

Kontrol akses ketat hingga ke pengguna tertentu pada tabel tertentu.

Detail halus dan fleksibel, tetapi sintaks otorisasi kompleks. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Expert permission model.

Simple Permission Model (SPM)

Kontrol akses kasar di tingkat database.

Role tingkat database yang telah dipaketkan dengan izin tetap per kelompok pengguna. Mencakup sebagian besar kasus penggunaan dengan sintaks yang lebih sederhana. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Manage permissions using SPM.

Schema-level Permission Model (SLPM)

Kontrol akses detail halus di tingkat skema dengan otorisasi yang disederhanakan.

Role tingkat skema yang telah dipaketkan dengan izin tetap per kelompok pengguna. Lebih detail halus dibandingkan SPM. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Manage permissions using SLPM.

Berikan izin

Tabel berikut mencantumkan izin yang diperlukan untuk setiap operasi dalam model PostgreSQL standar dan model yang disederhanakan (SPM/SLPM).

Catatan

Superuser secara default memiliki semua izin berikut.

Operasi dalam model otorisasi PostgreSQL standar

Izin yang diperlukan

Pernyataan otorisasi

CREATE USER(ROLE)

DROP USER(ROLE)

CREATEROLE

Berikan izin CREATEROLE kepada pengguna A:

alter user A createrole;

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

CONNECT pada database dan CREATE pada skema target

Berikan izin CREATE kepada pengguna A pada skema xx:

GRANT CREATE ON SCHEMA xx TO A;

Secara default, semua pengguna dapat membuat tabel di skema public.

SELECT

USAGE pada skema terkait dan SELECT pada tabel target

Contoh:

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

USAGE pada skema terkait dan izin DML terkait (INSERT/UPDATE/DELETE/TRUNCATE) pada tabel target

Contoh:

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 (dapat diubah melalui ALTER OWNER)

GRANT tidak dapat mentransfer kepemilikan tabel. Jalankan ALTER TABLE xx OWNER TO A; untuk mengubah pemilik menjadi A, yang kemudian dapat mengubah atau menghapus tabel tersebut.

DROP TABLE

CREATE DATABASE

CREATEDB

Berikan izin CREATEDB kepada pengguna A:

ALTER USER A CREATEDB;

DROP DATABASE

Pemilik DB

GRANT tidak dapat mentransfer kepemilikan database. Jalankan ALTER DATABASE xx OWNER TO A; untuk mengubah pemilik menjadi A, yang kemudian dapat menghapus database tersebut.

CREATE EXTENSION

Pemilik DB

-

GRANT

REVOKE

Pengguna dengan izin terkait dan GRANT OPTION

Berikan GRANT OPTION kepada pengguna A:

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:

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

  • Metode 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:

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

  • Metode 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

Berikan izin admin atau developer menggunakan pernyataan SPM di atas.

Izin dari superuser, atau kelompok pengguna admin atau developer skema tersebut

Berikan izin admin atau developer skema tersebut menggunakan pernyataan SLPM di atas.

SELECT

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

Berikan izin admin, developer, writer, atau viewer menggunakan pernyataan SPM di atas.

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

Berikan izin admin, developer, writer, atau viewer skema tersebut menggunakan pernyataan SLPM di atas.

INSERT

UPDATE

DELETE

TRUNCATE

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

Berikan izin admin, developer, atau writer menggunakan pernyataan SPM di atas.

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

Berikan izin admin, developer, atau writer skema tersebut menggunakan pernyataan SLPM di atas.

ALTER TABLE

Izin dari kelompok pengguna superuser, admin, atau developer

Berikan izin admin atau developer menggunakan pernyataan SPM di atas.

Izin dari superuser, atau kelompok pengguna admin atau developer skema tersebut

Berikan izin admin atau developer skema tersebut menggunakan pernyataan SLPM di atas.

DROP TABLE

CREATE DATABASE

DROP DATABASE

CREATE EXTENSION

DB admin

Berikan izin admin menggunakan pernyataan SPM di atas.

DB admin

Berikan izin admin skema tersebut menggunakan pernyataan SLPM di atas.

GRANT

REVOKE

DB admin

Berikan dan cabut izin untuk pengguna A:

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

DB admin

Berikan dan cabut izin untuk pengguna A:

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