日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Hologres權(quán)限模型

當一個用戶登錄Hologres實例后,必須有實例相關的操作權(quán)限才能在權(quán)限范圍內(nèi)進行操作。本文為您介紹使用Hologres實例開發(fā)需要的權(quán)限。

Hologres鑒權(quán)流程

一個用戶從連接Hologres到使用Hologres的完整鑒權(quán)流程如下:Hologres鑒權(quán)流程

用戶概念

當一個阿里云賬號連接Hologres時,需要被創(chuàng)建成為Hologres的用戶(管理員需要執(zhí)行create user "xxx",否則會報錯role "xxx" does not exist),才能連接成功。用戶屬于實例級別,所以添加用戶和刪除用戶相當于把用戶創(chuàng)建進實例中或者從實例中刪除。在實例內(nèi)進行的具體操作(例如創(chuàng)建表等),則是DB級別的權(quán)限,授予權(quán)限時需要在某一個DB中執(zhí)行,只享有這個DB內(nèi)對象的權(quán)限,不能跨DB使用權(quán)限。

說明

可通過執(zhí)行select * from pg_user;命令查看當前實例的Superuser。

角色類型

說明

超級管理員(Superuser)

系統(tǒng)默認將購買Hologres實例的主賬號設置為Superuser,擁有實例的所有權(quán)限。可以創(chuàng)建、銷毀數(shù)據(jù)庫,也可以創(chuàng)建角色以及為角色授權(quán)等。

普通用戶(Normal)

除Superuser之外的用戶都被稱為普通用戶,需要Superuser授予權(quán)限才能訪問Hologres實例,并在權(quán)限范圍內(nèi)進行數(shù)據(jù)開發(fā)。普通用戶也能被授權(quán)成為Superuser,享有實例的所有權(quán)限。

用戶組

為了方便用戶管理,可以將零個或多個用戶設置成用戶組,用來表示用戶角色。例如管理員角色、開發(fā)者角色等,一個用戶組內(nèi)的用戶擁有相同的權(quán)限。設置用戶組并授權(quán)相關角色的詳情內(nèi)容,請參見Postgres 數(shù)據(jù)庫角色

權(quán)限模型

Hologres兼容PostgreSQL 11,為用戶授予實例開發(fā)權(quán)限時,可以使用標準的PostgreSQL授權(quán)語句(專家權(quán)限模型),由于PostgreSQL的權(quán)限粒度較細,且授權(quán)語句比較復雜難懂,Hologres在此基礎上又提供簡單權(quán)限模型,提供更加便捷的權(quán)限控制。

關于簡單權(quán)限模型和專家權(quán)限模型的區(qū)別和使用場景如下:

權(quán)限類型

適用場景

說明

專家權(quán)限模型(PostgreSQL)

適用于需要非常嚴格權(quán)限管控的場景。例如,精確到某個人用某個表。

專家權(quán)限模型的權(quán)限授予粒度小且靈活,可以為用戶授予具體某個表的權(quán)限,但是授權(quán)語法比較復雜。具體權(quán)限授予操作,請參見專家權(quán)限模型

簡單權(quán)限模型(Simple Permission Model,SPM)

DB級別的權(quán)限管控,適用于粗粒度的權(quán)限管理場景。

簡單權(quán)限模型是封裝好的權(quán)限模型,以DB為維度,每個用戶組都有對應的權(quán)限,不可修改,能滿足大部分授權(quán)場景,且授權(quán)操作比較簡單。具體權(quán)限授予操作,請參見簡單權(quán)限模型

Schema級別的簡單權(quán)限模型(Schema-level Permission Model,SLPM)

精確到Schema級別的權(quán)限管控,適用于對權(quán)限粒度較為細致且又希望簡化授權(quán)流程的場景。

Schema級別的簡單權(quán)限模型是已經(jīng)封裝好的權(quán)限模型,以Schema為維度,每個用戶組都有對應的權(quán)限,不可修改,滿足對于權(quán)限較為細粒度的管控,且授權(quán)操作比較簡單。具體權(quán)限授予操作,請參見基于Schema級別的簡單權(quán)限模型的使用

權(quán)限授予

用戶想要使用Hologres進行開發(fā),需要授予具體的權(quán)限才能在權(quán)限范圍內(nèi)操作,專家權(quán)限模型和簡單權(quán)限模型授權(quán)的具體操作和權(quán)限關系如下兩個表格所示,您可以根據(jù)需要的操作配合所使用的權(quán)限模型來為用戶授權(quán)。

說明

Superuser默認具有表格中的所有權(quán)限。

專家權(quán)限模型操作

需要的權(quán)限

授權(quán)語句

CREATE USER(ROLE)

DROP USER(ROLE)

CREATEROLE

如下示例為授予用戶A創(chuàng)建角色的權(quán)限。

alter user A createrole;

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

DB的CONNECT權(quán)限以及對應Schema的CREATE權(quán)限

如下示例為授權(quán)用戶A有xx schema的建表權(quán)限。

GRANT CREATE ON SCHEMA xx TO A;

任何用戶默認有public schema下的建表權(quán)限。

SELECT

對應Schema的USAGE權(quán)限以及SELECT權(quán)限

您可以按照如下方式進行授權(quán):

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

對應Schema的USAGE權(quán)限以及INSERT/UPDATE /DELETE /TRUNCATE權(quán)限

您可以按照如下方式進行授權(quán):

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

表的owner(表的owner可以用ALTER OWNER改變)

刪除表不能使用GRANT,只能執(zhí)行命令ALTER TABLE xx OWNER TO A; 將表的owner修改為A后,由A刪除該表。

DROP TABLE

CREATE DATABASE

CREATEDB

如下示例為授予用戶A創(chuàng)建數(shù)據(jù)庫的權(quán)限:

ALTER USER A CREATEDB;

DROP DATABASE

DB owner

刪除數(shù)據(jù)庫不能使用GRANT,只能執(zhí)行命令ALTER DATABASE xx OWNER TO A; 將數(shù)據(jù)庫的owner修改為A后,由A刪除該DB。

CREATE EXTENSION

DB owner

-

GRANT

REVOKE

具有相應權(quán)限,并具備GRANT OPTION的用戶

如下示例為授予用戶GRANT操作權(quán)限:

GRANT 【Privilege】TO A WITH GRANT OPTION;

權(quán)限模式授權(quán)

簡單權(quán)限模型(SPM)

Schema級別的簡單權(quán)限模型(SLPM)

操作

需要的權(quán)限

授權(quán)語句

需要的權(quán)限

授權(quán)語句

CREATE USER(ROLE)

DROP USER(ROLE)

DB admin

您可以選擇如下兩種方式為用戶授予admin權(quán)限:

  • call spm_grant('A', '<dbname>_admin');
  • call spm_create_user('A', '<dbname>_admin');
重要

SPM權(quán)限模型暫不支持為用戶名稱以admindeveloperwriterviewerall_users結(jié)尾的自定義用戶授權(quán)。

DB admin

您可以選擇如下兩種方式為用戶授予admin權(quán)限:

  • call slpm_create_user('A', '<dbname>.<schema>.admin');
  • call slpm_grant('<dbname>.<schema>.admin','A');
重要

SLPM權(quán)限模型暫不支持為用戶名稱以admindeveloperwriterviewerall_users結(jié)尾的自定義用戶授權(quán)。

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

擁有superuser、admin或者developer用戶組權(quán)限

您可以參照本表格內(nèi)SPM的授權(quán)語句為用戶授予admin或者developer權(quán)限。

擁有superuser、schema的admin或者developer用戶組權(quán)限

您可以參照本表格內(nèi)SLPM的授權(quán)語句為用戶授予schema的admin或者developer權(quán)限。

SELECT

擁有superuser、admin、developer、writer或viewer用戶組權(quán)限

您可以參照本表格內(nèi)SPM的授權(quán)語句為用戶授予admin或者developer、writer、viewer權(quán)限。

擁有superuser、schema的admin、developerwriter或viewer用戶組權(quán)限

您可以參照本表格內(nèi)SLPM的授權(quán)語句為用戶授予schema的admin、developer、writer或viewer權(quán)限。

INSERT

UPDATE

DELETE

TRUNCATE

擁有superuser、admin、developer或writer用戶組權(quán)限

您可以參照本表格內(nèi)SPM的授權(quán)語句為用戶授予admin、developer或者writer權(quán)限。

擁有superuser、schema的admin、developer或writer用戶組權(quán)限

您可以參照本表格內(nèi)SLPM的授權(quán)語句為用戶授予schema的admin、developer、writer或viewer權(quán)限。

ALTER TABLE

擁有superuser、admin或者developer用戶組權(quán)限

您可以參照本表格內(nèi)SPM的授權(quán)語句為用戶授予admin或者developer權(quán)限。

擁有superuser、schema的admin或者developer用戶組權(quán)限

您可以參照本表格內(nèi)SLPM的授權(quán)語句為用戶授予schema的admin或者developer權(quán)限。

DROP TABLE

CREATE DATABASE

DROP DATABASE

CREATE EXTENSION

DB admin

您可以參照本表格內(nèi)SPM的授權(quán)語句為用戶授予admin權(quán)限。

DB admin

您可以參照本表格內(nèi)SLPM的授權(quán)語句為用戶授予schema的admin權(quán)限。

GRANT

REVOKE

DB admin

如下示例分別為用戶A授予GRANT和REVOKE權(quán)限:

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

DB admin

如下示例分別為用戶A授予GRANT和REVOKE權(quán)限:

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