Tüm Ürünler
Search
Belge Merkezi

Hologres:Introduction to Hologres permission models

Son Güncelleme:Oct 06, 2026

Bu konu, Hologres'in kullanıcıları nasıl doğruladığını açıklar ve geliştirme izinlerini vermek için kullanabileceğiniz üç izin modelini tanıtır: standart PostgreSQL modeli, SPM ve SLPM.

Hologres kimlik doğrulama akışı

Aşağıdaki şekil tam kimlik doğrulama akışını gösterir:Hologres authentication flow

Kullanıcılar

Bir Alibaba Cloud hesabının Hologres'e erişebilmesi için yöneticinin bu hesabı Hologres kullanıcısı olarak kaydetmek üzere create user "xxx" komutunu çalıştırması gerekir. Aksi takdirde role "xxx" does not exist hatası döner. Kullanıcılar örnek düzeyinde bulunur. Bir kullanıcı eklemek veya silmek, kullanıcıyı örneğe ekler veya örnekten kaldırır. Tablo oluşturma gibi işlemler veritabanı düzeyinde izin gerektirir; bu izinler belirli bir veritabanı içinde verilir ve veritabanları arasında kullanılamaz.

Not

Geçerli örneğin süper kullanıcısını görüntülemek için select * from pg_user; komutunu çalıştırın.

İzin modelleri

Hologres PostgreSQL 11 ile uyumludur ve standart PostgreSQL yetkilendirmesini (uzman modeli) destekler. PostgreSQL izinleri ayrıntılı olduğundan ve yetkilendirme söz dizimi karmaşık olduğundan Hologres iki basitleştirilmiş model de sunar: Simple Permission Model (SPM) ve Schema-level Permission Model (SLPM).

Aşağıdaki tabloda üç model karşılaştırılır.


İzin modeli


Senaryolar


Açıklama


Standart PostgreSQL yetkilendirme modeli (uzman modeli)


Belirli bir tablodaki belirli bir kullanıcıya kadar inen sıkı erişim kontrolü.


Ayrıntılı ve esnektir ancak yetkilendirme söz dizimi karmaşıktır. İzinlerin nasıl verileceğine ilişkin daha fazla bilgi için bkz. Expert permission model.


Simple Permission Model (SPM)


Kaba tanecikli, veritabanı düzeyinde erişim kontrolü.


Kullanıcı grubu başına sabit izinlere sahip, önceden paketlenmiş veritabanı düzeyindeki roller. Çoğu kullanım durumunu daha basit bir söz dizimiyle kapsar. İzinlerin nasıl verileceğine ilişkin daha fazla bilgi için bkz. Manage permissions using SPM.


Schema-level Permission Model (SLPM)


Basitleştirilmiş yetkilendirme ile şema düzeyinde ayrıntılı erişim kontrolü.


Kullanıcı grubu başına sabit izinlere sahip, önceden paketlenmiş şema düzeyindeki roller. SPM'den daha ayrıntılıdır. İzinlerin nasıl verileceğine ilişkin daha fazla bilgi için bkz. Manage permissions using SLPM.

İzin verme

Aşağıdaki tablolar standart PostgreSQL modeli ve basitleştirilmiş modeller (SPM/SLPM) altında her işlem için gereken izinleri listeler.

Not

Süper kullanıcılar varsayılan olarak aşağıdaki tüm izinlere sahiptir.

Standart PostgreSQL yetkilendirme modelindeki işlemler

Gerekli izinler

Yetkilendirme ifadesi

CREATE USER(ROLE)

DROP USER(ROLE)

CREATEROLE

Kullanıcı A'ya CREATEROLE izni verin:

alter user A createrole;

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

Veritabanında CONNECT ve hedef şemada CREATE

Kullanıcı A'ya xx şemasında CREATE izni verin:

GRANT CREATE ON SCHEMA xx TO A;

Varsayılan olarak tüm kullanıcılar public şemasında tablo oluşturabilir.

SELECT

İlgili şemada USAGE ve hedef tabloda SELECT

Örnek:

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

İlgili şemada USAGE ve hedef tabloda ilgili DML izni (INSERT/UPDATE/DELETE/TRUNCATE)

Örnek:

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

Tablo sahibi (ALTER OWNER ile değiştirilebilir)

GRANT, tablo sahipliğini devredemez. Sahibi A olarak değiştirmek için ALTER TABLE xx OWNER TO A; komutunu çalıştırın; ardından A tabloyu değiştirebilir veya silebilir.

DROP TABLE

CREATE DATABASE

CREATEDB

Kullanıcı A'ya CREATEDB izni verin:

ALTER USER A CREATEDB;

DROP DATABASE

DB owner

GRANT, veritabanı sahipliğini devredemez. Sahibi A olarak değiştirmek için ALTER DATABASE xx OWNER TO A; komutunu çalıştırın; ardından A veritabanını silebilir.

CREATE EXTENSION

DB owner

-

GRANT

REVOKE

İlgili izne ve GRANT OPTION'a sahip kullanıcı

Kullanıcı A'ya GRANT OPTION verin:

GRANT [Privilege] TO A WITH GRANT OPTION;

İzin modeline göre yetkilendirme

Simple Permission Model (SPM)

Schema-level Permission Model (SLPM)

İşlem

Gerekli izinler

Yetkilendirme ifadesi

Gerekli izinler

Yetkilendirme ifadesi

CREATE USER(ROLE)

DROP USER(ROLE)

DB admin

Bir kullanıcıya yönetici izinleri verin:

  • Yöntem 1: call spm_grant('<dbname>_admin','A');

  • Yöntem 2: call spm_create_user('A', '<dbname>_admin');

Önemli

SPM, kullanıcı adları admin, developer, writer, viewer veya all_users ile biten özel kullanıcılara izin vermeyi desteklemez.

DB admin

Bir kullanıcıya yönetici izinleri verin:

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

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

Önemli

SLPM, kullanıcı adları admin, developer, writer, viewer veya all_users ile biten özel kullanıcılara izin vermeyi desteklemez.

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

Süper kullanıcı, yönetici veya geliştirici kullanıcı grubunun izinleri

Yukarıdaki SPM ifadelerini kullanarak yönetici veya geliştirici izinleri verin.

Süper kullanıcı veya şemanın yönetici ya da geliştirici kullanıcı grubunun izinleri

Yukarıdaki SLPM ifadelerini kullanarak şemanın yönetici veya geliştirici izinlerini verin.

SELECT

Süper kullanıcı, yönetici, geliştirici, yazar veya görüntüleyici kullanıcı grubunun izinleri

Yukarıdaki SPM ifadelerini kullanarak yönetici, geliştirici, yazar veya görüntüleyici izinleri verin.

Süper kullanıcı veya şemanın yönetici, geliştirici, yazar ya da görüntüleyici kullanıcı grubunun izinleri

Yukarıdaki SLPM ifadelerini kullanarak şemanın yönetici, geliştirici, yazar veya görüntüleyici izinlerini verin.

INSERT

UPDATE

DELETE

TRUNCATE

Süper kullanıcı, yönetici, geliştirici veya yazar kullanıcı grubunun izinleri

Yukarıdaki SPM ifadelerini kullanarak yönetici, geliştirici veya yazar izinleri verin.

Süper kullanıcı veya şemanın yönetici, geliştirici ya da yazar kullanıcı grubunun izinleri

Yukarıdaki SLPM ifadelerini kullanarak şemanın yönetici, geliştirici veya yazar izinlerini verin.

ALTER TABLE

Süper kullanıcı, yönetici veya geliştirici kullanıcı grubunun izinleri

Yukarıdaki SPM ifadelerini kullanarak yönetici veya geliştirici izinleri verin.

Süper kullanıcı veya şemanın yönetici ya da geliştirici kullanıcı grubunun izinleri

Yukarıdaki SLPM ifadelerini kullanarak şemanın yönetici veya geliştirici izinlerini verin.

DROP TABLE

CREATE DATABASE

DROP DATABASE

CREATE EXTENSION

DB admin

Yukarıdaki SPM ifadelerini kullanarak yönetici izinleri verin.

DB admin

Yukarıdaki SLPM ifadelerini kullanarak şemanın yönetici izinlerini verin.

GRANT

REVOKE

DB admin

Kullanıcı A için izin verin ve iptal edin:

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

DB admin

Kullanıcı A için izin verin ve iptal edin:

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