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

Hologres權限模型概述

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

Hologres鑒權流程

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

用戶概念

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

說明

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

角色類型

說明

超級管理員(Superuser)

系統默認將購買Hologres實例的主賬號設置為Superuser,擁有實例的所有權限。可以創建、銷毀數據庫,也可以創建角色以及為角色授權等。

普通用戶(Normal)

除Superuser之外的用戶都被稱為普通用戶,需要Superuser授予權限才能訪問Hologres實例,并在權限范圍內進行數據開發。普通用戶也能被授權成為Superuser,享有實例的所有權限。

用戶組

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

權限模型

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

關于簡單權限模型和專家權限模型的區別和使用場景如下:

權限類型

適用場景

說明

專家權限模型(PostgreSQL)

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

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

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

DB級別的權限管控,適用于粗粒度的權限管理場景。

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

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

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

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

權限授予

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

說明

Superuser默認具有表格中的所有權限。

專家權限模型操作

需要的權限

授權語句

CREATE USER(ROLE)

DROP USER(ROLE)

CREATEROLE

如下示例為授予用戶A創建角色的權限。

alter user A createrole;

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

DB的CONNECT權限以及對應Schema的CREATE權限

如下示例為授權用戶A有xx schema的建表權限。

GRANT CREATE ON SCHEMA xx TO A;

任何用戶默認有public schema下的建表權限。

SELECT

對應Schema的USAGE權限以及SELECT權限

您可以按照如下方式進行授權:

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權限以及INSERT/UPDATE /DELETE /TRUNCATE權限

您可以按照如下方式進行授權:

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,只能執行命令ALTER TABLE xx OWNER TO A; 將表的owner修改為A后,由A刪除該表。

DROP TABLE

CREATE DATABASE

CREATEDB

如下示例為授予用戶A創建數據庫的權限:

ALTER USER A CREATEDB;

DROP DATABASE

DB owner

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

CREATE EXTENSION

DB owner

-

GRANT

REVOKE

具有相應權限,并具備GRANT OPTION的用戶

如下示例為授予用戶GRANT操作權限:

GRANT 【Privilege】TO A WITH GRANT OPTION;

權限模式授權

簡單權限模型(SPM)

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

操作

需要的權限

授權語句

需要的權限

授權語句

CREATE USER(ROLE)

DROP USER(ROLE)

DB admin

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

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

SPM權限模型暫不支持為用戶名稱以admindeveloperwriterviewerall_users結尾的自定義用戶授權。

DB admin

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

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

SLPM權限模型暫不支持為用戶名稱以admindeveloperwriterviewerall_users結尾的自定義用戶授權。

CREATE TABLE

VIEW TABLE

FOREIGN TABLE

擁有superuser、admin或者developer用戶組權限

您可以參照本表格內SPM的授權語句為用戶授予admin或者developer權限。

擁有superuser、schema的admin或者developer用戶組權限

您可以參照本表格內SLPM的授權語句為用戶授予schema的admin或者developer權限。

SELECT

擁有superuser、admin、developer、writer或viewer用戶組權限

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

擁有superuser、schema的admin、developerwriter或viewer用戶組權限

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

INSERT

UPDATE

DELETE

TRUNCATE

擁有superuser、admin、developer或writer用戶組權限

您可以參照本表格內SPM的授權語句為用戶授予admin、developer或者writer權限。

擁有superuser、schema的admin、developer或writer用戶組權限

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

ALTER TABLE

擁有superuser、admin或者developer用戶組權限

您可以參照本表格內SPM的授權語句為用戶授予admin或者developer權限。

擁有superuser、schema的admin或者developer用戶組權限

您可以參照本表格內SLPM的授權語句為用戶授予schema的admin或者developer權限。

DROP TABLE

CREATE DATABASE

DROP DATABASE

CREATE EXTENSION

DB admin

您可以參照本表格內SPM的授權語句為用戶授予admin權限。

DB admin

您可以參照本表格內SLPM的授權語句為用戶授予schema的admin權限。

GRANT

REVOKE

DB admin

如下示例分別為用戶A授予GRANT和REVOKE權限:

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

DB admin

如下示例分別為用戶A授予GRANT和REVOKE權限:

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