本頁面說明如何使用 Cloud SQL Auth Proxy Docker 映像檔,從執行 Linux 的用戶端機器或 Compute Engine Linux 執行個體,將 sqlcmd 用戶端連線至 Cloud SQL 執行個體。
事前準備
您必須做好以下準備:
- 已安裝 gcloud CLI。瞭解詳情。
- 授權 gcloud CLI。瞭解詳情。
- 設定 gcloud CLI 的預設專案。瞭解詳情。
- 在 Cloud SQL 執行個體設定資料庫使用者。瞭解詳情。
必要的角色
如要取得使用 Cloud SQL Auth Proxy Docker 映像檔連線至 Cloud SQL 執行個體所需的權限,請要求管理員在專案中授予您下列 IAM 角色:
-
如要使用 Cloud SQL Auth Proxy 連線:Cloud SQL 用戶端 (
roles/cloudsql.client) -
如果使用 IAM 資料庫驗證:Cloud SQL 執行個體使用者 (
roles/cloudsql.instanceUser)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
使用 Cloud SQL Auth Proxy Docker 映像檔連結 sqlcmd 用戶端
如要使用 Cloud SQL Auth Proxy Docker 映像檔連線:
啟用 Cloud SQL Admin API (如果尚未啟用)。
啟用 API 所需的角色
如要啟用 API,您必須具備
serviceusage.services.enable權限。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過 Service Usage 管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。- 如果您使用的是 Compute Engine 執行個體,請按照下列步驟準備執行個體:
-
顯示 Compute Engine 執行個體屬性:
gcloud compute instances describe [GCE_INSTANCE_NAME]
- 驗證執行個體上設定的服務帳戶和存取權範圍:
- 請確認附加至 VM 的服務帳戶具備 Cloud SQL 用戶端 (
roles/cloudsql.client) 預先定義的身分與存取權管理 (IAM) 角色,以便使用 Cloud SQL Auth Proxy 或 Cloud SQL Admin API 進行連線。如果您使用 IAM 資料庫驗證,也請授予 Cloud SQL 執行個體使用者 (roles/cloudsql.instanceUser) 角色。如要進一步瞭解預先定義的角色,請參閱「必要的角色」。 - 確認 VM 存取權範圍設為
cloud-platform(https://www.googleapis.com/auth/cloud-platform,或 Google Cloud 控制台中的「Allow full access to all Cloud APIs」(允許所有 Cloud API 的完整存取權))。存取權範圍是指定 VM 授權的舊方法,只會設定要求的 OAuth 授權範圍上限。請透過預先定義的 IAM 角色 (而非存取權範圍) 管理存取控管。
如果 Compute Engine 執行個體沒有必要的服務帳戶角色或存取權範圍,您可以更新執行個體。如要進一步瞭解如何變更 VM 的服務帳戶和存取權範圍,請參閱 Compute Engine 說明文件中的「變更附加的服務帳戶」。
- 請確認附加至 VM 的服務帳戶具備 Cloud SQL 用戶端 (
- 按照「連線至 Linux 執行個體」一文中的操作說明,開啟與執行個體的終端機連線。
-
顯示 Compute Engine 執行個體屬性:
-
如果尚未安裝 sqlcmd 用戶端,請在 Compute Engine 執行個體或用戶端機器上安裝。
Debian/Ubuntu
如果是 Debian/Ubuntu,請安裝適用的 SQL Server 指令列工具。
CentOS/RHEL
如果是 CentOS/RHEL,請安裝適用的 SQL Server 指令列工具。
openSUSE
如果是 openSUSE,請安裝適用的 SQL Server 指令列工具。
其他平台
請參閱安裝 SQL Server 的到達網頁,以及 SQL Server 下載頁面。
-
如有需要,請安裝 Docker 用戶端
curl https://get.docker.com | sh sudo usermod -aG docker $USER
如果您正在使用將容器最佳化的 Compute Engine 執行個體,即表示已經安裝 Docker 用戶端。
-
從 Google Container Registry 安裝 Cloud SQL Auth Proxy Docker 映像檔。
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.27.0
- 如果您在本機電腦 (而非 Compute Engine 執行個體) 執行 Cloud SQL Auth Proxy Docker 映像檔,或附加至 Compute Engine 執行個體的服務帳戶不具備必要的 IAM 角色和存取權範圍,請建立 Google Cloud 服務帳戶。
- 前往 Google Cloud 控制台的「Service accounts」(服務帳戶) 頁面。
- 選取 Cloud SQL 執行個體所在的專案。
- 按一下「建立服務帳戶」。
- 在「Service account name」(服務帳戶名稱) 欄位中,輸入服務帳戶的描述性名稱。
- 將「Service account ID」(服務帳戶 ID) 變更為不重複且可辨識的值,然後按一下「Create and continue」(建立並繼續)。
-
按一下「請選擇角色」欄位,然後選取下列其中一個角色:
- Cloud SQL > Cloud SQL Client
- Cloud SQL > Cloud SQL 編輯者
- Cloud SQL > Cloud SQL Admin
- 按一下「Done」(完成),即完成建立服務帳戶。
- 按一下新服務帳戶的動作選單,然後選取「管理金鑰」。
- 按一下「Add key」(新增金鑰) 下拉式選單,然後點選「Create new key」(建立新的金鑰)。
-
確認金鑰類型為 JSON,然後按一下「建立」。
私密金鑰檔案會下載到您的機器。您可以將它移到其他位置。妥善保管金鑰檔案。
啟動 Cloud SQL Auth Proxy 時,請將金鑰檔案的路徑提供為「PATH_TO_KEY_FILE」。
- 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。
-
選取執行個體,開啟「Instance details」(執行個體詳細資料) 頁面,然後複製「Instance connection name」(執行個體連線名稱)。
例如:
myproject:us-central1:myinstance。 -
啟動 Cloud SQL Auth Proxy。
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.27.0
--address 0.0.0.0 --port 1433
--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 Auth Proxy 暴露在本機主機外部。必須使用--address 0.0.0.0旗標,才能從 Docker 容器外部存取通訊埠。 - 啟動用戶端:
您使用的連線字串取決於您是使用 TCP 通訊端還是 Docker 啟動 Cloud SQL Auth Proxy。
TCP 通訊端
- 啟動 sqlcmd 用戶端:
sqlcmd -S tcp:127.0.0.1,1433 -U USERNAME -P PASSWORD
使用 TCP 通訊端連線時,系統會透過
127.0.0.1存取 Cloud SQL Auth Proxy。 - 如果出現提示訊息,請輸入密碼。
- 畫面上會顯示 sqlcmd 提示。
- 啟動 sqlcmd 用戶端:
將 Cloud SQL Auth Proxy Docker 映像檔保持在最新狀態
Cloud SQL Auth Proxy Docker 映像檔是以特定版本的 Cloud SQL Auth Proxy 為基礎。Cloud SQL Auth Proxy 有新版本時,請提取新版 Cloud SQL Auth Proxy Docker 映像檔,確保環境保持最新狀態。如要查看 Cloud SQL Auth Proxy 的目前版本,請前往 Cloud SQL Auth Proxy GitHub 版本頁面。
後續步驟
- 進一步瞭解 Cloud SQL Auth Proxy。
- 取得 Cloud SQL Auth Proxy 連線問題疑難排解的相關說明。
- 建立使用者和資料庫。
- 瞭解從應用程式連線至執行個體的選項。
- 瞭解 Docker。
- 瞭解 Google Container Registry。
- 瞭解支援的選項。