建立及管理使用者

本頁面說明如何啟用並使用 Cloud SQL 內建驗證機制。

如要進一步瞭解使用 Cloud SQL 建立的使用者,請參閱「其他 SQL Server 使用者」。

建立使用者前

  1. 建立 Cloud SQL 執行個體。詳情請參閱「建立執行個體」。
  2. 如果您打算使用資料庫的管理用戶端來管理使用者,請設定密碼,在執行個體上設定預設使用者。請參閱「設定預設使用者帳戶的密碼」。

設定預設使用者帳戶的密碼

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

如果是 SQL Server 適用的 Cloud SQL,預設使用者為 sqlserver。

控制台

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

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 在 SQL 導覽選單中選取「使用者」。
  4. 找出 sqlserver 使用者,然後在「更多動作」選單 更多動作圖示。 中選取「變更密碼」。
  5. 輸入您記得住的高強度密碼,然後按一下「OK」(確定)。

gcloud

使用下列 gcloud sql users set-password 指令,設定預設使用者的密碼。

請先將 INSTANCE_NAME 替換為執行個體名稱,再執行指令。

gcloud sql users set-password sqlserver \
--instance=INSTANCE_NAME \
--prompt-for-password

REST v1

如要更新預設使用者帳戶的密碼,請使用 users:update 方法傳送 PUT 要求。

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:所需的執行個體 ID
  • user-id:使用者 ID
  • password:使用者的密碼

HTTP 方法和網址:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

JSON 要求主體:

{
  "name": "user-id",
  "password": "password"
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

如要更新預設使用者帳戶的密碼,請使用 users:update 方法傳送 PUT 要求。

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:所需的執行個體 ID
  • user-id:使用者 ID
  • password:使用者的密碼

HTTP 方法和網址:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

JSON 要求主體:

{
  "name": "user-id",
  "password": "password"
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

新增使用者

設定預設使用者帳戶後,即可建立其他使用者。

建立內建使用者時,您可以為使用者指派一或多個資料庫角色。

控制台

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

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 在 SQL 導覽選單中選取「使用者」。
  4. 按一下「新增使用者帳戶」。
  5. 在「Add a user account to instance instance_name」(在執行個體「instance_name」中新增使用者帳戶) 頁面中,新增下列資訊:
    • 使用者名稱。
    • 密碼 (選填)。
  6. 按一下「新增」。

gcloud

如要建立使用者,請使用 gcloud sql users create 指令。

更改下列內容:

  • USER_NAME:使用者名稱。
  • INSTANCE_NAME:執行個體的名稱。
  • PASSWORD:使用者的密碼。
gcloud sql users create USER_NAME \
--instance=INSTANCE_NAME \
--password=PASSWORD

Cloud SQL 的使用者名稱長度限制與地端部署 SQL Server 相同。

Terraform

如要建立使用者,請使用 Terraform 資源。

resource "random_password" "pwd" {
  length  = 16
  special = false
}

resource "google_sql_user" "user" {
  name     = "user"
  instance = google_sql_database_instance.default.name
  password = random_password.pwd.result
}

套用變更

如要在 Google Cloud 專案中套用 Terraform 設定,請完成下列各節的步驟。

準備 Cloud Shell

  1. 啟動 Cloud Shell。
  2. 設定要套用 Terraform 設定的預設 Google Cloud 專案。

    這項指令在每個專案中只需執行一次,且可在任何目錄中執行。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。

準備目錄

每個 Terraform 設定檔都必須有自己的目錄 (也稱為「根模組」)。

  1. 在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須有 .tf 副檔名,例如 main.tf。在本教學課程中,這個檔案稱為 main.tf。
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 如果您正在按照教學課程操作,可以複製每個章節或步驟中的程式碼範例。

    將程式碼範例複製到新建立的 main.tf。

    您也可以從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。

  3. 請查看並修改範例參數,以便套用至您的環境。
  4. 儲存變更。
  5. 初始化 Terraform。每個目錄只需執行一次這項操作。
    terraform init

    如要使用最新版 Google 供應商,請視需要加入 -upgrade 選項:

    terraform init -upgrade

套用變更

  1. 查看設定,確認 Terraform 要建立或更新的資源符合預期:
    terraform plan

    視需要修正設定。

  2. 執行下列指令,並在提示中輸入 yes,套用 Terraform 設定:
    terraform apply

    等待 Terraform 顯示「Apply complete!」訊息。

  3. 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台的使用者介面中,前往資源頁面,確認 Terraform 已建立或更新資源。

刪除變更

如要刪除變更,請按照下列步驟操作:

  1. 如要停用防刪除功能,請在 Terraform 設定檔中將 deletion_protection 引數設為 false。
    deletion_protection =  "false"
  2. 執行下列指令,並在提示中輸入 yes,套用更新後的 Terraform 設定:
    terraform apply
  1. 執行下列指令,並在提示中輸入 yes,移除先前使用 Terraform 設定套用的資源:

    terraform destroy

REST v1

如要建立使用者,請使用 POST 要求和 users:insert 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • INSTANCE_ID:執行個體 ID
  • USER_ID:使用者 ID
  • PASSWORD:使用者的密碼

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

JSON 要求主體:

{
  "name": "USER_ID",
  "password": "PASSWORD"
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Cloud SQL 的使用者名稱長度限制與地端部署 SQL Server 相同。

REST v1beta4

如要建立使用者,請使用 POST 要求和 users:insert 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • INSTANCE_ID:執行個體 ID
  • USER_ID:使用者 ID
  • PASSWORD:使用者的密碼

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

JSON 要求主體:

{
  "name": "USER_ID",
  "password": "PASSWORD"
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Cloud SQL 的使用者名稱長度限制與地端部署 SQL Server 相同。

列出使用者

控制台

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

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 在 SQL 導覽選單中選取「使用者」。

gcloud

使用 gcloud sql users list 指令,列出這個執行個體的使用者:

gcloud sql users list \
--instance=INSTANCE_NAME

REST v1

如要列出為執行個體定義的使用者,請使用 GET 要求搭配 users:list 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:所需的執行個體 ID

HTTP 方法和網址:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

REST v1beta4

如要列出為執行個體定義的使用者,請使用 GET 要求搭配 users:list 方法。

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:所需的執行個體 ID

HTTP 方法和網址:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

變更使用者密碼

您可以透過下列任一方式變更使用者密碼。

控制台

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

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 在 SQL 導覽選單中選取「使用者」。
  4. 找出要更新的使用者,然後按一下「更多動作」圖示 更多動作圖示。。
  5. 選取「變更密碼」。
  6. 指定新密碼。
  7. 按一下「OK」。

gcloud

使用 gcloud sql users set-password 指令變更密碼。

更改下列內容:

  • USER_NAME:使用者名稱。
  • INSTANCE_NAME:執行個體的名稱。
gcloud sql users set-password USER_NAME \
--instance=INSTANCE_NAME \
--prompt-for-password

REST v1

如要變更使用者密碼,請使用 users:update 方法傳送 PUT 要求。

下列要求會更新使用者帳戶 user_name 的密碼。

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:所需的執行個體 ID
  • user-id:使用者 ID
  • password::使用者的新密碼

HTTP 方法和網址:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

JSON 要求主體:

{
  "name": "user-id",
  "password": "password"
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

如要變更使用者密碼,請使用 users:update 方法傳送 PUT 要求。

下列要求會更新使用者帳戶 user_name 的密碼。

使用任何要求資料之前,請先修改下列項目的值:

  • project-id:專案 ID
  • instance-id:所需的執行個體 ID
  • user-id:使用者 ID
  • password::使用者的新密碼

HTTP 方法和網址:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

JSON 要求主體:

{
  "name": "user-id",
  "password": "password"
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

移除使用者

預設使用者可以移除使用者。

移除使用者前,您必須捨棄該使用者擁有的所有物件,或重新指派擁有權,並撤銷該角色在其他物件上獲得的所有權限。

控制台

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

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 在 SQL 導覽選單中選取「使用者」。
  4. 針對要移除的使用者,按一下「更多動作」圖示 更多動作圖示。。
  5. 依序選取「移除」和「移除」。

gcloud

使用 gcloud sql users delete 指令移除使用者。

更改下列內容:

  • USER_NAME:使用者名稱。
  • INSTANCE_NAME:執行個體的名稱。
gcloud sql users delete USER_NAME \
--instance=INSTANCE_NAME

REST v1

下列要求使用 users:delete 方法刪除指定的使用者帳戶。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • INSTANCE_ID:所需的執行個體 ID
  • USERNAME:使用者或服務帳戶的電子郵件地址

HTTP 方法和網址:

DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

下列要求使用 users:delete 方法刪除指定的使用者帳戶。

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • INSTANCE_ID:所需的執行個體 ID
  • USERNAME:使用者或服務帳戶的電子郵件地址

HTTP 方法和網址:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

更新使用者屬性

如要瞭解 SQL Server 中的資料庫層級角色,請參閱 SQL Server 說明文件中的「使用資料庫層級角色」。

後續步驟