本文介紹了使用者和許可權管理的方法。
使用者管理
執行個體建立過程中,會提示使用者指定初始使用者名稱和密碼,這個初始使用者為“根使用者”。執行個體建立好後,使用者可以使用該根使用者串連資料庫。使用psql(PostgreSQL或Greenplum的用戶端工具)串連資料庫後,通過\du+
命令可以查看所有使用者的資訊,樣本如下:
重要
除了根使用者外,還有其他內部系統管理使用者被建立。
postgres=> \du+
返回結果如下:
List of roles
Role name | Attributes | Member of | Description
--------------+-----------------------------------+-----------+---------------
root_user | | | rds_superuser
...
目前,AnalyticDB PostgreSQL版沒有開放SUPERUSER許可權,對應的是 RDS_SUPERUSER,這一點與雲資料庫RDS(PostgreSQL)中的許可權體系一致。所以,根使用者(如上面的樣本中的root_user)具有RDS_SUPERUSER許可權,這個許可權屬性只能通過查看使用者的描述(Description)來識別。根使用者具有如下許可權:
具有CREATEROLE、CREATEDB和LOGIN許可權,即可以用來建立資料庫和使用者,但沒有SUPERUSER許可權。
查看和修改其它非超級使用者的資料表,執行SELECT、UPDATE、DELETE或更改所有者(Owner)等操作。
查看其它非超級使用者的串連資訊、撤銷(Cancel)其SQL或終止(Kill)其串連。
執行CREATE EXTENSION和DROP EXTENSION命令,建立和刪除外掛程式。
建立其他具有RDS_SUPERUSER許可權的使用者,樣本如下:
CREATE ROLE root_user2 RDS_SUPERUSER LOGIN PASSWORD 'xyz';
許可權管理
使用者可以在資料庫(Database)、模式(Schema)、表等多個層次系統管理權限。賦予一個使用者表上的讀取許可權,但收回修改許可權,樣本如下:
GRANT SELECT ON TABLE t1 TO normal_user1;
REVOKE UPDATE ON TABLE t1 FROM normal_user1;
REVOKE DELETE ON TABLE t1 FROM normal_user1;