本頁面說明如何使用以密碼為基礎的 PostgreSQL 標準驗證方法,建立、管理及移除 PostgreSQL 和 AlloyDB for PostgreSQL 的角色、使用者和群組。
在 AlloyDB 中建立 PostgreSQL 使用者
建立 PostgreSQL 使用者時,他們一開始只會擁有 LOGIN
權限。如要進一步瞭解這些權限,請參閱CREATE USER
。
您可以使用 ALTER ROLE
指令變更任何使用者的權限。如果您使用 psql
用戶端建立新使用者,可以選擇將該使用者與不同角色建立關聯,或指派不同權限。
管理使用者
您可以使用 Google Cloud CLI 或 PostgreSQL 指令,建立及管理 AlloyDB 使用者。以下各節將示範如何使用這兩種方法執行常見使用者管理工作。
事前準備
如要使用 PostgreSQL 指令管理叢集上的使用者,您需要下列項目:
- 存取
psql
用戶端 - 存取
postgres
資料庫使用者,或具有適當管理權限的其他使用者角色
如要使用 Google Cloud 控制台或 Google Cloud CLI 管理叢集中的使用者,該叢集必須有主要執行個體。如果叢集沒有主要執行個體,您必須建立一個,才能管理使用者。
建立資料庫使用者
如要建立直接使用使用者名稱和密碼向資料庫驗證的身分,也就是內建驗證,請按照本節步驟操作。
如要改為建立使用 Identity and Access Management (IAM) 驗證的資料庫使用者,請參閱「管理 IAM 驗證」。
控制台
前往「Clusters」(叢集) 頁面。
按一下要新增使用者的叢集名稱。
按一下「Users」(使用者)。
按一下「Add user account」(新增使用者帳戶)。
保留選取的「內建驗證」。
如要使用 IAM 驗證及登入資料庫叢集,您必須完成額外步驟,準備專案並授予新使用者適當的權限。詳情請參閱「管理 IAM 驗證」。
輸入新使用者的使用者名稱和密碼。
按一下「新增」。
psql
CREATE USER USERNAME WITH PASSWORD PASSWORD;
如要進一步瞭解如何建立及定義資料庫使用者,請參閱CREATE USER
。
建立使用者後,您可以在 psql
用戶端中使用 ALTER ROLE
指令變更使用者的權限。
gcloud
使用 gcloud alloydb users create
指令。
gcloud alloydb users create USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID
請替換下列變數:
USERNAME
:使用者的使用者名稱。USERNAME
必須遵守 SQL ID 的規則:不得包含任何特殊字元,或以雙引號括住。例如:db_user_1
。PASSWORD
:使用者密碼。如要建立沒有密碼的使用者,請省略這個引數。CLUSTER_ID
:要將使用者新增至的叢集 ID。REGION_ID
:叢集所在的區域 ID。例如:us-central1
。
建立使用者後,您可以使用 gcloud alloydb users set-roles
指令變更其權限。
此外,您也可以在建立使用者時,授予角色或超級使用者權限。如要這麼做,請加入 --db-roles
或 --superuser
引數,如下一節所述。
將角色授予資料庫使用者
控制台
如要將角色授予資料庫使用者,請使用 psql
或 gcloud CLI,而非 Google Cloud 控制台。
psql
GRANT ROLE to USERNAME;
請替換下列變數:
USERNAME
:使用者的使用者名稱。ROLE
:要授予使用者的角色。舉例來說,如要授予使用者超級使用者權限,請授予alloydbsuperuser
。
gcloud
使用 gcloud alloydb users set-roles
指令,指定您要授予使用者的所有角色。
gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID
請替換下列變數:
USERNAME
:使用者的使用者名稱。ROLES
:以逗號分隔的清單,列出您希望使用者擁有的所有角色。請務必列出所有角色,包括現有和新角色。如要查看指派給使用者的現有角色清單,請執行下列指令:
gcloud alloydb users list --cluster=CLUSTER_ID --region=REGION_ID
請替換下列變數:
CLUSTER_ID
:包含使用者的叢集 ID。REGION_ID
:叢集所在的區域 ID。例如:us-central1
。
如要授予使用者超級使用者權限,您可以手動使用
psql
將alloydbsuperuser
角色授予該使用者,也可以使用--superuser=true
引數執行gcloud alloydb users set-superuser
指令:gcloud alloydb users set-superuser USERNAME \ --superuser=true \ --cluster=CLUSTER_ID \ --region=REGION_ID
請替換下列變數:
CLUSTER_ID
:包含使用者的叢集 ID。REGION_ID
:叢集所在的區域 ID。例如:us-central1
。
變更資料庫使用者的密碼
如要為標準 PostgreSQL 資料庫使用者設定新密碼,請按照本節中的步驟操作。
您無法變更或設定 IAM 使用者的密碼,因為 IAM 使用者不會使用密碼進行驗證。詳情請參閱「使用 IAM 帳戶連線」一文。
控制台
前往「Clusters」(叢集) 頁面。
按一下包含資料庫使用者的叢集名稱。
按一下「Users」(使用者)。
在代表使用者的資料列中,按一下
「開啟這位使用者的相關動作」。選取「變更密碼」。
指定密碼:
如要為這位使用者設定新密碼,請在「密碼」欄位中輸入密碼。
如要為使用者設定無密碼,請選取「無密碼」核取方塊。
按一下 [確定]。
psql
ALTER USER USERNAME WITH PASSWORD PASSWORD;
如要進一步瞭解如何變更使用者密碼,請參閱
ALTER ROLE
。
gcloud
使用 gcloud alloydb users set-password
指令:
gcloud alloydb users set-password USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID
請替換下列變數:
USERNAME
:使用者的使用者名稱。PASSWORD
:要指派給使用者的新密碼。CLUSTER_ID
:使用者所屬叢集的 ID。REGION_ID
:叢集所在的區域 ID。例如:us-central1
。
撤銷資料庫使用者的角色
控制台
如要撤銷使用者的角色,請使用 psql
或 gcloud CLI,而非 Google Cloud 控制台。
psql
您可以撤銷先前授予一或多個角色的權限,也可以撤銷使用者的角色成員資格。
REVOKE ROLE FROM USERNAME;
如要移除使用者的超級使用者權限,請撤銷該使用者的 alloydbsuperuser
角色。
gcloud
如要使用 Google Cloud CLI 撤銷角色,請使用 gcloud alloydb users set-roles
指令指定使用者要擁有的所有角色,並省略要撤銷的角色。
gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID
請替換下列變數:
USERNAME
:使用者的使用者名稱。ROLES
:以逗號分隔的清單,列出您希望使用者擁有的所有角色。請務必列出所有角色,包括現有和新角色。如要查看指派給使用者的現有角色清單,請執行下列指令:
gcloud alloydb users list --cluster=CLUSTER_ID --region=REGION_ID
CLUSTER_ID
:包含使用者的叢集 ID。REGION_ID
:叢集所在的區域 ID。例如:us-central1
。
如要撤銷超級使用者權限,您可以手動移除使用者的 alloydbsuperuser
角色 (使用 psql
),也可以使用 --superuser=false
引數執行 gcloud alloydb users set-superuser
指令。
查看資料庫使用者清單
控制台
前往「Clusters」(叢集) 頁面。
按一下要查看使用者的叢集名稱。
按一下「Users」(使用者)。
psql
\du
指令會列印所有資料庫使用者的表格,包括群組成員資格。
\du
gcloud
使用 gcloud alloydb users list
指令。
gcloud alloydb users list \
--cluster=CLUSTER_ID \
--region=REGION_ID
更改下列內容:
CLUSTER_ID
:包含使用者的叢集 ID。REGION_ID
:叢集所在的區域 ID。例如:us-central1
。
刪除資料庫使用者
控制台
前往「Clusters」(叢集) 頁面。
按一下包含使用者的叢集名稱。
按一下「Users」(使用者)。
在代表使用者的資料列中,按一下
「開啟這位使用者的相關動作」。選取「移除」。
在「要移除使用者帳戶嗎?」對話方塊中,按一下「移除」。
psql
刪除使用者前,您必須捨棄或重新指派使用者擁有的所有物件,並撤銷使用者在其他物件上獲得的任何權限。
DROP ROLE USERNAME;
gcloud
使用 gcloud alloydb users delete
指令。
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION_ID
更改下列內容:
USERNAME
:使用者的使用者名稱。CLUSTER_ID
:使用者所屬叢集的 ID。REGION_ID
:叢集所在的區域 ID。例如:us-central1
。