使用 Cloud SQL Auth Proxy Docker 映像檔連結 SQL Server 用戶端

本頁說明如何使用 Cloud SQL Auth Proxy Docker 映像檔,從執行 Linux 或 Compute Engine Linux 執行個體的用戶端機器,將 sqlcmd 用戶端連線至 Cloud SQL 執行個體。

事前準備

您必須做好以下準備:

使用 Cloud SQL 驗證 Proxy Docker 映像檔連結 sqlcmd 用戶端

如要使用 Cloud SQL 驗證 Proxy Docker 映像檔連線:

  1. Enable the Cloud SQL Admin API.

    Enable the API

  2. 如果您正在使用 Compute Engine 執行個體,請為執行個體做好下列準備工作:
    1. 顯示 Compute Engine 執行個體屬性:
      gcloud compute instances describe [GCE_INSTANCE_NAME]
    2. 確認在執行個體上啟用的範圍。

      驗證使用範圍需要下列兩個範圍:

      • https://www.googleapis.com/auth/sqlservice.admin
      • https://www.googleapis.com/auth/devstorage.read_write

      或者,藉由 https://www.googleapis.com/auth/cloud-platform 範圍啟用所有 Google Cloud Platform API。

      如果您的 Compute Engine 執行個體沒有正確的範圍,您可以更新執行個體使其包含這些範圍。詳情請參閱 Compute Engine 說明文件

    3. 按照「 連線至 Linux 執行個體」一節的操作說明,開啟連至執行個體的終端機連線。
  3. 若尚未在 Compute Engine 執行個體或用戶端機器上安裝 sqlcmd 用戶端,請執行這個動作。

    Debian/Ubuntu

    如果是 Debian/Ubuntu,請 安裝適用的 SQL Server 指令列工具

    CentOS/RHEL

    針對 CentOS/RHEL,請 安裝適用的 SQL Server 指令列工具

    openSUSE

    如果是 openSUSE,請 安裝適用的 SQL Server 指令列工具

    其他平台

    請參閱 這裡的資訊,瞭解如何安裝 SQL Server,以及 這裡的 SQL Server 下載頁面。

  4. 如有需要,請安裝 Docker 用戶端
    curl https://get.docker.com | sh
    sudo usermod -aG docker $USER

    如果您正在使用將容器最佳化的 Compute Engine 執行個體,即表示已經安裝 Docker 用戶端。

  5. Google Container Registry 安裝 Cloud SQL 驗證 Proxy Docker 映像檔。
    docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.16.0
  6. 如果您正在本機機器上執行 Cloud SQL 驗證 Proxy Docker 映像檔 (非 Compute Engine 執行個體),或者您的 Compute Engine 執行個體沒有適當的範圍,請建立 Google Cloud Platform 服務帳戶。
    1. 前往 Google Cloud 控制台的「Service accounts」(服務帳戶) 頁面。

      前往「Service accounts」(服務帳戶)

    2. 選取含有 Cloud SQL 執行個體的專案。
    3. 按一下「建立服務帳戶」
    4. 在「Service account name」欄位中,輸入服務帳戶的描述性名稱。
    5. 將「服務帳戶 ID」變更為專屬且可辨識的值,然後點選「建立並繼續」
    6. 按一下「請選取角色」欄位,然後選取下列其中一個角色:
      • Cloud SQL > Cloud SQL 用戶端
      • Cloud SQL > Cloud SQL 編輯器
      • Cloud SQL > Cloud SQL 管理員
    7. 按一下「Done」(完成),即完成建立服務帳戶。
    8. 按一下新服務帳戶的動作選單,然後選取「管理金鑰」
    9. 依序點選「Add key」下拉式選單和「Create new key」
    10. 確認金鑰類型為 JSON,然後按一下「建立」

      私密金鑰檔案會下載到您的機器中,您可以將它移到其他位置。請妥善保護這個金鑰檔案。

    啟動 Cloud SQL 驗證 Proxy 時,您會以「PATH_TO_KEY_FILE」形式提供金鑰檔案的路徑。

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

    前往 Cloud SQL 執行個體

  8. 選取執行個體並開啟其「Instance details」(執行個體詳細資料) 頁面,然後複製「Instance connection name」(執行個體連線名稱)

    例如 myproject:us-central1:myinstance

  9. 啟動 Cloud SQL 驗證 Proxy。

    根據您的語言與環境,您可以使用 TCP 通訊端或 Unix 通訊端啟動 Cloud SQL 驗證 Proxy。以 Java 程式設計語言編寫的應用程式或 Windows 環境都不支援 Unix 通訊端。

    TCP 通訊端

    docker run -d \
      -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \
      -p 127.0.0.1:1433:1433 \
      gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.16.0 \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME>

    如果您要使用 Compute Engine 執行個體提供的憑證,請勿加入 --credentials-file 參數和 -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json 這一行指令列。

    請一律在 -p 中指定 127.0.0.1 前置字串,以防 Cloud SQL 驗證 Proxy 暴露到本機主機之外。執行個體參數中必須要有「0.0.0.0」,才能讓 Docker 容器以外的環境存取連接埠。

    Unix 通訊端

    docker run -d -v /cloudsql:/cloudsql \
      -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json \
      gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.16.0 //
      --unix-socket=/cloudsql \
      --credentials-file /path/to/service-account-key.json <INSTANCE_CONNECTION_NAME> 

    如果您要使用 Compute Engine 執行個體提供的憑證,請勿加入 --credentials-file 參數和 -v <PATH_TO_KEY_FILE>:/path/to/service-account-key.json 這一行指令列。

    如果您要使用將容器最佳化的映像檔,請使用可寫入的目錄來取代 /cloudsql,例如:

    -v /mnt/stateful_partition/cloudsql:/cloudsql

    您可以指定多個執行個體,並以半形逗號分隔。您也可以使用 Compute Engine 中繼資料,以動態方式決定要連線的目標執行個體。進一步瞭解 Proxy 參數

  10. 啟動用戶端:

    使用的連線字串取決於您是使用 TCP 通訊端還是 Docker 啟動 Cloud SQL 驗證 Proxy。

    TCP 通訊端

    1. 啟動 sqlcmd 用戶端:
      sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD

      使用 TCP 通訊端連線時,您會透過 127.0.0.1 存取 Cloud SQL 驗證 Proxy。

    2. 系統顯示提示時,請輸入密碼。
    3. 畫面上會顯示 sqlcmd 提示。
需要協助嗎?如需針對 Proxy 進行疑難排解,請參閱「Cloud SQL 驗證 Proxy 連線疑難排解」一文,或造訪 Cloud SQL 支援頁面。

保持 Cloud SQL 驗證 Proxy Docker 映像檔的最新狀態

Cloud SQL 驗證 Proxy Docker 映像檔是以特定版本的 Cloud SQL 驗證 Proxy 為基礎。當 Cloud SQL 驗證 Proxy 推出新版本時,請拉取新版本的 Cloud SQL 驗證 Proxy Docker 映像檔,以便保持環境的最新狀態。您可以檢查 Cloud SQL Auth Proxy GitHub 版本頁面查看 Cloud SQL Auth Proxy 的最新版本。Google Groups Cloud SQL 公告論壇中也會註記未來的 Proxy 版本。

後續步驟