建立及管理 PostgreSQL 使用者

這個頁面說明如何設定預設使用者帳戶及為 Cloud SQL 執行個體建立、刪除與更新其他使用者帳戶。

如需使用者如何使用 Cloud SQL 的相關資訊,請參閱 PostgreSQL 使用者

事前準備

完成此頁面上的工作之前,您必須已經建立 Cloud SQL 執行個體。如需詳細資訊,請參閱建立執行個體

如果您想使用資料庫的管理用戶端管理使用者,您必須已經設定:

設定預設使用者帳戶

當您建立新的 Cloud SQL 執行個體時,必須先設定預設使用者帳戶,才能連線至執行個體。

針對 PostgreSQL 適用的 Cloud SQL,預設使用者是 postgres

設定預設使用者:

主控台

  1. 前往 Google Cloud Platform 主控台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體頁面

  2. 按一下執行個體開啟它的 [Overview] (總覽) 頁面。
  3. 選取 [Users] 分頁標籤。
  4. 找到 postgres 使用者,然後從「更多動作」選單 更多動作圖示。 中選取 [Change password] (變更密碼)。
  5. 輸入您能夠記住的高強度密碼,然後按一下 [OK] (確定)

gcloud

設定預設使用者的密碼:

gcloud sql users set-password postgres \
    --instance=[INSTANCE_NAME] --prompt-for-password

cURL

以下要求使用 users:update 方法更新 postgres 使用者。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "postgres", "password": "[PASSWORD]"}' \
     -X PUT \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=postgres&'

建立使用者

建立使用者:

主控台

  1. 前往 Google Cloud Platform 主控台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往 [Cloud SQL Instances] 頁面

  2. 選取執行個體開啟它的 [Overview] (總覽) 頁面。
  3. 選取 [Users] (使用者) 分頁標籤。
  4. 按一下 [Create user account] (建立使用者帳戶)
  5. 在 [Create user account] (建立使用者帳戶) 對話方塊中,指定:
    • 「User name」(使用者名稱)
    • [Password]
  6. 按一下 [Create]

以 Cloud SQL 建立的使用者會具備下列與 cloudsqlsuperuser 角色相關聯的權限:CREATEROLECREATEDBLOGIN。如要變更使用者的屬性,您必須在 psql 用戶端中使用 ALTER ROLE 指令。

gcloud

建立使用者:

gcloud sql users create [USER_NAME] \
   --instance=[INSTANCE_NAME] --password=[PASSWORD]

以 Cloud SQL 建立的使用者會具備下列與 cloudsqlsuperuser 角色相關聯的權限:CREATEROLECREATEDBLOGIN。如要變更使用者的屬性,您必須在 psql 用戶端中使用 ALTER ROLE 指令。

cURL

以下要求使用 users:insert 方法建立使用者帳戶 'user_name'。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[USER_NAME]", "password": "[PASSWORD]"}' \
     -X POST \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users

以 Cloud SQL 建立的使用者會具備下列與 cloudsqlsuperuser 角色相關聯的權限:CREATEROLECREATEDBLOGIN。如要變更使用者的屬性,您必須在 psql 用戶端中使用 ALTER ROLE 指令。

psql 用戶端

  1. psql 提示下,建立使用者:
    CREATE USER [USER_NAME] WITH [ATTRIBUTE1] [ATTRIBUTE2]...;
    \password [USER_NAME];
    

    系統出現提示時,輸入密碼。

    如要進一步瞭解角色屬性,請參閱 PostgreSQL 說明文件

  2. 您可以顯示使用者資料表以確認建立使用者:
    SELECT * FROM pg_roles;
    

變更使用者密碼

變更使用者密碼:

主控台

  1. 前往 Google Cloud Platform 主控台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往 [Cloud SQL Instances] 頁面

  2. 選取執行個體開啟它的 [Overview] (總覽) 頁面。
  3. 選取 [Access Control] (存取權控管) > [Users] (使用者)
  4. 針對您要更新的使用者,按一下「更多動作」圖示 更多動作圖示。
  5. 選取 [Change password] (變更密碼),在指定新密碼後按一下 [OK] (確定)

gcloud

更新密碼:

gcloud sql users set-password [USER_NAME] \
   --instance=[INSTANCE_NAME] --prompt-for-password

cURL

以下要求使用 users:update 方法更新使用者帳戶 'user_name' 的密碼。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[USER_NAME]", "password": "[PASSWORD]"}' \
     -X PUT \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?name=[USER_NAME]'

psql 用戶端

  1. psql 提示下,變更密碼:
    \password [USER];
    

    系統出現提示時,輸入密碼。

更新使用者

如要更新使用者屬性,您必須使用 psql 用戶端。詳情請參閱 PostgreSQL 說明文件中的資料庫角色

列出使用者

列出使用者:

主控台

  1. 前往 Google Cloud Platform 主控台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往 [Cloud SQL Instances] 頁面

  2. 選取執行個體開啟它的 [Overview] (總覽) 頁面。
  3. 選取 [Access Control] (存取權控管) > [Users] (使用者)

gcloud

列出這個執行個體的使用者:

gcloud sql users list --instance=[INSTANCE_NAME]

如需這個指令的完整參數清單,請參閱 gcloud sql 使用者清單參考頁面

cURL

以下要求使用 users:list 方法列出為執行個體定義的使用者。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     -X GET \
     https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users

psql 用戶端

psql 提示下,列出 PostgreSQL 使用者:

SELECT * FROM pg_roles;

刪除使用者

刪除使用者:

主控台

  1. 前往 Google Cloud Platform 主控台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往 [Cloud SQL Instances] 頁面

  2. 選取執行個體開啟它的 [Overview] (總覽) 頁面。
  3. 選取 [Access Control] (存取權控管) > [Users] (使用者)
  4. 針對您要刪除的使用者,按一下「更多動作」圖示 更多動作圖示。
  5. 選取 [Delete] (刪除),然後按一下 [OK] (確定)

gcloud

刪除使用者:

gcloud sql users delete [USER_NAME] --host=[HOST] --instance=[INSTANCE_NAME]

host 參數會被忽略,請提供任意值。

cURL

以下要求使用 users:delete 方法刪除特定使用者帳戶。

ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data '{"name": "[USER_NAME]", "host": ""}' \
     -X DELETE \
     'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?host=&name=[USER_NAME]'

psql 用戶端

  1. psql 提示下,刪除使用者:
    DROP ROLE [USER_NAME];
    

    如要進一步瞭解 DROP ROLE 陳述式,請參閱 PostgreSQL 說明文件

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
PostgreSQL 適用的 Cloud SQL