使用私人 IP 連線至 SQL Server 適用的 Cloud SQL 執行個體

本頁面說明如何使用私人 IP 建立及連結 SQL Server 執行個體。假設您及時完成所有步驟 (包括清理作業),在本快速入門導覽課程中建立的資源通常不會超過一美元。

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. 確認您具備完成本快速入門導覽課程所需的權限。
  7. 啟用必要的 Google Cloud API。

    控制台

    前往 Google Cloud 控制台的「APIs」頁面。

    前往 API 頁面

    啟用 Cloud SQL Admin API。啟用這項 API 後,您就能執行 Cloud SQL 驗證 Proxy。

    gcloud

    按一下下列按鈕開啟 Cloud Shell,直接在瀏覽器中使用指令列存取 Google Cloud 資源。您可以使用 Cloud Shell 執行本快速入門導覽課程中顯示的 gcloud 指令。

    開啟 Cloud Shell

    使用 Cloud Shell 執行下列 gcloud services enable 指令,啟用本快速入門導覽課程所需的 API:

    gcloud services enable sqladmin.googleapis.com

    這個指令會啟用下列 API:

    • Cloud SQL Admin API。啟用這項 API 後,您就能執行 Cloud SQL 驗證 Proxy。

必要的角色

如要取得設定 Cloud SQL 私人 IP 位址所需的權限,請要求管理員在您要設定及連線的專案中,授予下列 IAM 角色:

  • 建立或刪除執行個體、資料庫和使用者: Cloud SQL 管理員角色 (roles/cloudsql.admin)。
  • 建立或刪除 IAM 服務帳戶: IAM 服務帳戶管理員角色 (roles/iam.serviceAccountAdmin)。
  • 建立或刪除運算執行個體:
  • 建立連線:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

總覽

連線至具有私人 IP 位址的 Cloud SQL 執行個體時,連線方式會因來源位置而異。最重要的是,來源機器必須與 Cloud SQL 執行個體位於相同的虛擬私有雲網路。如果來源不在 Google Cloud 或不在同一個 Google Cloud 專案中,則必須以不同於本文所示的方式設定連線能力

在本快速入門導覽課程中,我們將透過最直接的路徑設定連線。來源和目標位於相同 Google Cloud 專案和相同虛擬私有雲網路。我們建立具有私人 IP 位址的 Cloud SQL 執行個體 (目標),以及 Compute Engine VM (來源)。我們會使用 VM 安裝並使用從 VM 連線至 Cloud SQL 執行個體所需的工具。

請執行下列動作:

  1. 建立使用私人 IP 位址的 Cloud SQL 執行個體

    找出並儲存執行個體的 connection name,以供日後使用。

  2. 建立 Compute Engine VM
  3. 開啟兩個與 Compute Engine VM 的 SSH 連線

    您將使用第一個視窗安裝 sqlcmd,並安裝及啟動 Cloud SQL 驗證 Proxy。接著,您會使用第二個視窗連線至 Cloud SQL 驗證 Proxy,藉此連線至 Cloud SQL 執行個體。

  4. 在 SSH 視窗 #1 中,執行下列操作:
    1. 安裝 sqlcmd 用戶端
    2. 安裝 Cloud SQL 驗證 Proxy

      Cloud SQL 驗證 Proxy 可做為 sqlcmd 用戶端與 Cloud SQL 執行個體之間的連接器。

    3. 啟動 Cloud SQL 驗證 Proxy

      成功後,Cloud SQL 驗證 Proxy 會監聽連線要求。

  5. 在 SSH 視窗 #2 中,讓 sqlcmd 用戶端連線至 Cloud SQL Auth Proxy,連線至 Cloud SQL 執行個體

    成功後,您會在視窗中看到 sqlcmd 提示,並在 SSH 視窗 #1 中看到連線成功的訊息,其中 Cloud SQL 驗證 Proxy 正在執行。

  6. 清理

建立使用私人 IP 位址的 Cloud SQL 執行個體

如要建立使用私人 IP 連線的執行個體,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 選取「SQL Server」分頁,然後按一下「沙箱」方塊中的「建立沙箱執行個體」。或者,您也可以按一下「建立執行個體」,然後執行下列操作:
    1. 按一下「Choose SQL Server」(選取 SQL Server)
    2. 選取「Enterprise」版本。
    3. 選擇「Sandbox」預設設定。
  3. 如果系統提示您啟用 Compute API,請按一下「啟用 API」按鈕。
  4. 在「執行個體資訊」部分,輸入「執行個體 ID」的名稱。
  5. 輸入 sqlserver 使用者的密碼。記下您建立的密碼,因為後續步驟會用到。
  6. 在「選擇區域和可用區供應情形」部分,選取「單一可用區」選項。
  7. 展開「顯示設定選項」
  8. 展開「連線」
  9. 清除「公開 IP」
  10. 選取「私人 IP」。
  11. 選取「私人服務連線 (PSA)」
  12. 從「VPC Network」(虛擬私有雲網路) 下拉式選單中,選取「default」(預設)
  13. 如果您使用新專案,系統會顯示「網路連線尚未設定」訊息,並顯示「需要確認網路設定」方塊,引導您前往虛擬私有雲文件,瞭解如何設定 PSA
    1. 前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面:

      前往「VPC networks」(虛擬私有雲網路)

    2. 選取「預設」虛擬私有雲網路。
    3. 設定防火牆規則,允許存取 TCP 通訊埠 22:
      1. 選取「防火牆」分頁標籤。
      2. 在「虛擬私有雲防火牆規則」部分,選取「建立虛擬私有雲防火牆規則」
      3. 為防火牆規則命名。
      4. 在「Targets」(目標) 下,選取 [All instances in the network] (網路中的所有執行個體)
      5. 在「來源 IPv4 範圍」下方,輸入 0.0.0.0/0
      6. 在「Protocols and Ports」(通訊協定和通訊埠) 下方,勾選「TCP」,然後在正下方的「Ports」(通訊埠) 方塊中輸入 22
      7. 選取「建立」
    4. 分配 IP 位址範圍
      1. 選取「私人服務存取」分頁標籤。
      2. 在「私人服務連線」分頁中,選取「已分配的服務 IP 範圍」分頁標籤。
      3. 按一下「Allocate IP range」(分配 IP 範圍)
      4. 輸入已分配範圍的「名稱」,並視需要輸入「說明」
      5. 如要讓 Google 選取可用範圍,請選取「自動」
      6. 請輸入介於 16 和 124 之間的前置長度 (分配的位址數量等於 2 的 (32 - 前置長度) 次方)。
      7. 按一下 [Allocate] (分配),建立已分配範圍。
    5. 建立私人連線
      1. 在「Private services access」(私人服務存取) 分頁中,切換至「Private connections to services」(私人服務連線) 分頁。
      2. 按一下「建立連線」按鈕。
      3. 在「建立私人連線」方塊的「已指派的分配」下拉式選單中,選取您剛建立的 IP 位址範圍名稱。
      4. 按一下「連線」
    6. 連線建立完成後,請返回建立 Cloud SQL 執行個體的位置,然後按一下「確認連線」
  14. 成功建立 PSA 連線後,請按一下「建立執行個體」

建立新執行個體時,系統會將您帶往執行個體「總覽」頁面。

執行個體建立完成後,請捲動至「連線至這個執行個體」部分,並儲存執行個體的「連線名稱」connection name 的格式為 projectID:region:instanceID。稍後啟動 Cloud SQL 驗證 Proxy 時,會用到這個 connection name

建立 Compute Engine VM

請按照下列步驟建立 VM:

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

    前往 VM 執行個體

  2. 點選「建立執行個體」
  3. 輸入執行個體的「名稱」
  4. 在導覽窗格中選取「資料保護」,然後選取「不備份」
  5. 在導覽窗格中選取「安全性」,然後在「存取權範圍」下方,選取「允許所有 Cloud API 的完整存取權」
  6. 按一下「建立」,然後等待 VM 建立完成。

開啟兩個與 Compute Engine VM 的 SSH 連線

我們在 VM 中使用兩個視窗。第一個視窗用於安裝 sqlcmd 用戶端和 Cloud SQL 驗證 Proxy、取得執行個體連線名稱,以及使用這個名稱啟動 Proxy。第二個視窗用於透過 Proxy 連線至 Cloud SQL 執行個體。

  1. 展開 Compute Engine VM 執行個體「連線」欄中的「SSH」選單。
  2. 選取「在瀏覽器視窗中開啟」,開啟 SSH 視窗 1。

    視窗中的提示可能需要幾秒鐘才會顯示。

  3. 出現提示時,請輸入 pwd,確認您位於 /home/$USER 目錄。

    您將在這個視窗中安裝 sqlcmd 用戶端和 Cloud SQL 驗證 Proxy,並啟動 Cloud SQL 驗證 Proxy。

  4. 再次選取「在瀏覽器視窗中開啟」,開啟 SSH 視窗 #2。

    您將使用這個視窗連線至 Cloud SQL 執行個體。

安裝 sqlcmd 用戶端

請使用 SSH 視窗 #1 執行這個步驟。

按照 這些操作說明,為 Ubuntu 安裝 SQL Server 指令列工具 (mssql-tools)。

安裝 Cloud SQL 驗證 Proxy

請使用 SSH 視窗 #1 執行這個步驟。

  1. 安裝 wget
    sudo apt-get install wget
        
  2. 下載 Cloud SQL 驗證 Proxy:
    wget https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.8.2/cloud-sql-proxy.linux.amd64 \
    -O cloud-sql-proxy
      
  3. 將 Cloud SQL 驗證 Proxy 設為允許執行:
    chmod +x cloud-sql-proxy
      

啟動 Cloud SQL 驗證 Proxy

請使用 SSH 視窗 #1 執行這個步驟。

啟動 Cloud SQL 驗證 Proxy,監控輸出內容。將 INSTANCE_CONNECTION_NAME 改成您建立 Cloud SQL 執行個體時複製的 connection name

./cloud-sql-proxy --private-ip INSTANCE_CONNECTION_NAME

Cloud SQL 驗證 Proxy 成功啟動後,SSH 視窗中會顯示類似下列的訊息:

Listening on 127.0.0.1:1433 for myInstance
Ready for new connections

連線至 Cloud SQL 執行個體

請使用 SSH 視窗 #2 執行這個步驟。

執行下列指令,並將 USER_NAME 替換為 SQL Server 使用者名稱。

sqlcmd -S 127.0.0.1 -U USER_NAME

返回啟動 Cloud SQL 驗證 Proxy 的終端機視窗。畫面會顯示類似以下的訊息:

New connection for myInstance

清除所用資源

為了避免系統向您的 Google Cloud 帳戶收取本頁面所用資源的費用,請按照下列步驟操作。

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 選取 myinstance 執行個體,開啟「執行個體詳細資料」頁面。
  3. 在頁面頂端的圖示列中,按一下 [刪除]
  4. 在「Delete instance」(刪除執行個體) 視窗中輸入執行個體名稱,然後按一下「Delete」(刪除)

選用清除步驟

如果您未使用本快速入門導覽課程啟用的 API,可以停用這些 API。

  • 本快速入門導覽課程中啟用的 API:
    • Cloud SQL Admin API
  1. 前往 Google Cloud 控制台的「APIs」頁面。

    前往 API 頁面

  2. 選取 Cloud SQL Admin API,然後按一下「停用 API」按鈕。

  3. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  4. 選取執行個體的名稱。

  5. 在「更多動作」選單中選取「刪除」

後續步驟

您可以根據需求,進一步瞭解如何建立 Cloud SQL 執行個體

您也可以瞭解如何建立 Cloud SQL 執行個體的 SQL Server 使用者資料庫

此外,您也可以瞭解如何從其他 Google Cloud 應用程式連線至 Cloud SQL 執行個體: