本頁面說明如何使用以密碼為基礎的 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 驗證」。
輸入新使用者的使用者名稱和密碼。
如要為使用者指派預設
alloydbsuperuser
以外的角色,請按照下列步驟操作:- 在「角色」中輸入角色名稱。
- 如要新增角色,請按下 Enter 鍵或 Tab 鍵。
選取要為該使用者移除的任何角色 x。
詳情請參閱預先定義的角色。
按一下「新增」。
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
。