本頁面說明如何使用 Cloud SQL 執行下列操作:
- 與 Managed Service for Microsoft Active Directory (也稱為 Managed Microsoft AD) 整合。
- 使用 AD 使用者連線至執行個體。
與 Managed Microsoft AD 整合的 Cloud SQL 執行個體除了 SQL 驗證外,也支援 Windows 驗證。
事前準備
- 在 Google Cloud 控制台中,選取專案名稱。
- 請確認您已為 Google Cloud 專案啟用計費功能。瞭解如何確認專案已啟用計費功能。
- 安裝並初始化 gcloud CLI。
- 確認您的使用者帳戶具備
Cloud SQL Admin角色。前往「IAM」頁面。 - 查看 整合必要條件。
建立具備 Windows 驗證功能的執行個體
您可以在建立執行個體時,與 Managed Microsoft AD 整合,為執行個體啟用 Windows 驗證。如要整合,請選擇要加入執行個體的網域。如果無法加入網域,就無法建立執行個體。
在準備建立啟用 Windows 驗證的執行個體時,請參閱提示以及限制和替代方案。
只要執行個體同時具備私人 IP,就支援公開 IP;執行個體必須啟用私人 IP。只要兩者皆可用,您就能選擇使用公開 IP 或私人 IP 連線至執行個體。
以下是建立與 Managed Microsoft AD 整合的執行個體時可用的選項。
控制台
-
前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。
- 點選「建立執行個體」。
- 按一下「Choose SQL Server」(選取 SQL Server)。
- 輸入執行個體名稱。請勿在執行個體名稱中加入敏感或個人識別資訊,因為這類資訊會對外公開。執行個體名稱不需包含專案 ID。系統會在適當位置 (例如記錄檔) 自動建立這項資訊。
- 輸入
'sqlserver'使用者的密碼。 - 設定執行個體的區域。請參閱「 與 Managed Microsoft AD 整合的最佳做法」。
- 在「Configuration options」(設定選項) 部分,設定所需選項 (但請等到下一個步驟再設定驗證選項)。
- 按一下「Authentication」。加入受管理 Active Directory 網域的下拉式選單會列出先前在專案中新增的所有 Managed Microsoft AD 網域。
- 從加入受管理 Active Directory 網域的下拉式選單中,選取網域。
- 選取完設定選項後,按一下「Create」(建立)。Cloud SQL 會自動為您建立每項產品和專案的服務帳戶。如果帳戶沒有適當的角色,系統會提示您授予
managedidentities.sqlintegrator角色。
gcloud
下列指令會建立與 Managed Microsoft AD 整合的執行個體,因此會啟用 Windows 驗證。如要瞭解建立執行個體的基本指令,請參閱「建立執行個體」。
在 gcloud 指令中指定 --active-directory-domain=DOMAIN 參數。舉例來說,請指定下列項目:
--active-directory-domain=ad.mydomain.com
以下是 gcloud 指令的原型:
gcloud beta sql instances create INSTANCE_NAME \ --database-version=EDITION \ --root-password=PASSWORD \ --active-directory-domain=DOMAIN\ --cpu=CPU \ --memory=MEMORY \ --network=NETWORK
Terraform
如要建立與 Managed Microsoft AD 整合的執行個體,請使用 Terraform 資源。
REST
您可以使用 REST API 建立與 Managed Microsoft AD 整合的執行個體。在 domain 欄位中指定網域,例如 subdomain.mydomain.com,如以下要求原型所示:
{
"databaseVersion":"database-version",
"name":"instance-id",
"region":"region",
"rootPassword":"password",
"settings":{
"tier":"machine-type",
"ipConfiguration":{
"privateNetwork":"network"
},
"activeDirectoryConfig":{
"domain":"domain"
}
}
}
更新執行個體並啟用 Windows 驗證
您可以更新現有執行個體的網域,變更或新增網域。
如需更新執行個體的一般資訊,請參閱「編輯執行個體」。
如果執行個體目前已加入 Managed AD 網域,則會先退出該網域,再加入新網域。如果更新失敗,執行個體可能不會再加入任何網域。
控制台
-
前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。
- 點選執行個體名稱,開啟執行個體的「總覽」頁面。
- 按一下 [編輯]。
- 按一下「Authentication」。「Join an Active Directory domain」(加入 Active Directory 網域) 下拉式選單會列出先前在專案中新增的 Managed Microsoft AD 網域。
- 從加入受管理 Active Directory 網域的下拉式選單中,為執行個體選取新的 (替代) 網域。
- 按一下 [Save] (儲存) 套用您的變更。
gcloud
以下是更新現有執行個體的指令原型。這個指令會新增或取代網域。將 --active-directory-domain=DOMAIN 傳遞至指令,如下所示:
gcloud beta sql instances patch INSTANCE_NAME \ --active-directory-domain=DOMAIN
REST
您可以使用 REST API 更新現有執行個體。在 domain 欄位中指定網域,例如 subdomain.mydomain.com。以下是要求原型:
{
"settings":{
"activeDirectoryConfig":{
"domain":"domain"
}
}
}
與其他專案中的代管 AD 網域整合
您可以將執行個體與其他專案中的 Managed Microsoft AD 網域整合。
規劃整合時,請詳閱限制。
啟用網域對接
請先啟用網域對接,讓所有必要專案都能使用該網域,並建立 SQL Server 適用的 Cloud SQL 執行個體,再繼續執行下列各節的步驟。
如要查看其他專案中已可使用的網域清單,請指定下列項目:
`gcloud active-directory peerings list`
詳情請參閱「列出網域對接」。
gcloud active-directory peerings list 指令需要 managedidentities.peerings.list 權限。下列角色具備這項權限:
roles/managedidentities.peeringViewerroles/managedidentities.viewer
詳情請參閱「使用 IAM 控管存取權」。
建立服務帳戶
針對每個含有要整合的 SQL Server 適用的 Cloud SQL 執行個體的專案,重複執行這些步驟。
- 查看建立服務帳戶的背景資訊。
使用類似下列的指令建立服務帳戶。指定 SQL Server 適用的 Cloud SQL 執行個體所在專案的 ID:
gcloud beta services identity create --service=sqladmin.googleapis.com \ --project=[PROJECT_ID]
在具有 Managed Microsoft AD 執行個體的專案中,授予
managedidentities.sqlintegrator角色。指定含有 Managed Microsoft AD 執行個體的專案 ID:gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member=serviceAccount:SERVICE_ACCOUNT --role=roles/managedidentities.sqlintegrator
啟用跨專案 Windows 驗證
您可以使用 gcloud 指令或 Cloud SQL REST API,與其他專案中的 AD 網域整合。無論是哪一種情況,都必須指定完整的網域資源名稱。
建立或更新 SQL Server 適用的 Cloud SQL 執行個體時,請指定完整的網域資源名稱。支援兩種格式:
projects/PROJECT_ID/locations/global/domains/DOMAIN_NAMEprojects/PROJECT_NUMBER/locations/global/domains/DOMAIN_NAME
以下是使用 gcloud 的範例:
gcloud beta sql instances patch INSTANCE_NAME \ --active-directory-domain=projects/PROJECT_ID/locations/global/domains/DOMAIN_NAME
如果使用簡短的網域資源名稱 (例如 DOMAIN_NAME),系統會假設 Managed Microsoft AD 網域與 SQL Server 適用的 Cloud SQL 執行個體位於同一個專案。
與不同專案整合的限制
如果您要與其他專案中的受管理 AD 網域整合,則須遵守下列限制:
- 最多 10 個含有 SQL Server 適用的 Cloud SQL 執行個體的網路,可以共用位於不同專案中的一個 Managed Microsoft AD 執行個體。
- Google Cloud 控制台僅支援位於相同專案中的 Managed Microsoft AD 執行個體。除了使用 Google Cloud 控制台,您也可以使用
gcloud指令或 Cloud SQL REST API 進行整合。 - 如果使用 VPC Service Controls,SQL Server 適用的 Cloud SQL 執行個體和 Managed Microsoft AD 執行個體必須位於相同 perimeter。
此外,如果執行個體與其他專案中的受管理 AD 網域整合,Google Cloud 控制台顯示的完整網域名稱 (FQDN) 可能不正確。具體來說,在該執行個體的「Overview」(總覽) 頁面中,「Connect to this instance」(連線至這個執行個體) 下方的 FQDN 可能包含以斜線分隔的字串,您可以忽略這些字串。舉例來說,不正確的 FQDN 可能會顯示為:
private.myinstance.myregion.myproject.projects/mydirectory/locations/global/domains/mydomain.com
在這種情況下,正確的 FQDN 為:
private.myinstance.myregion.myproject.cloudsql.mydomain.com
移除執行個體的 Windows 驗證
您可以從現有執行個體中移除 Windows 驗證,以及 Managed Microsoft AD 整合。
控制台
-
前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。
- 點選執行個體名稱,開啟執行個體的「總覽」頁面。
- 按一下 [編輯]。
- 按一下「Authentication」。加入受管理 Active Directory 網域的下拉式選單,會列出先前在專案中新增的 Managed Microsoft AD 網域。
- 從下拉式選單中,為執行個體選取「No domain/Join later」(無網域/稍後加入)。
- 閱讀有關重新啟動執行個體的訊息,然後按一下「Close」(關閉)。
- 按一下 [Save] (儲存) 套用您的變更。
gcloud
如要從網域中移除執行個體,進而移除 Windows 驗證,請將網域值留空。也就是說,請在指令中為 --active-directory-domain 參數使用空白值,如下所示:
gcloud beta sql instances patch INSTANCE_NAME \ --active-directory-domain=
REST
您可以使用 REST API 從網域中移除執行個體。在 domain 欄位中指定空白值,如下所示:
{
"settings":{
"activeDirectoryConfig":{
"domain":""
}
}
}
以使用者身分連線至執行個體
如果是 SQL Server 適用的 Cloud SQL,預設使用者為 sqlserver。
將執行個體與 Managed Microsoft AD 整合後,您可以使用 sqlserver 使用者連線至執行個體,如下所示:
依據 Windows 使用者或群組建立 SQL Server 登入,如下所示:
CREATE LOGIN [domain\user_or_group] FROM WINDOWS
使用 Windows 驗證機制,以執行個體 DNS 名稱登入執行個體。以下是可指定的執行個體 DNS 名稱範例:
如要透過私人 IP 連線,請按照下列步驟操作:
private.myinstance.us-central1.myproject.cloudsql.mydomain.com
如要透過公開 IP 連線,請按照下列步驟操作:
public.myinstance.us-central1.myproject.cloudsql.mydomain.com
如要透過 Cloud SQL Auth Proxy 連線 (另請參閱下方):
proxy.myinstance.us-central1.myproject.cloudsql.mydomain.com
如果使用執行個體 IP 位址,則必須設定 Kerberos 用戶端,以支援 IP 主機名稱。Cloud SQL 不支援透過信任關係連結的網域登入。
搭配使用 Cloud SQL Auth Proxy 和 Windows 驗證
您可以搭配使用 Cloud SQL Auth Proxy 和 Managed Microsoft AD 整合功能。
開始前,請先詳閱:
Windows 驗證步驟
如要瞭解如何啟動 Cloud SQL Auth Proxy,請參閱「啟動 Cloud SQL Auth Proxy」。
如要使用 Windows 驗證,必須在通訊埠 1433 執行 Cloud SQL Auth Proxy。如要將預先定義的服務主體名稱 (SPN) 項目對應至 Cloud SQL Auth Proxy 位址,請使用:
proxy.[instance].[location].[project].cloudsql.[domain]
在本機執行 Cloud SQL Auth Proxy
如果您在本機執行 Cloud SQL Auth Proxy,請使用主機檔案將下列項目對應至 127.0.0.1:
proxy.[instance].[location].[project].cloudsql.[domain]
舉例來說,您可以在主機檔案 (例如 c:\windows\system32\drivers\etc\hosts) 中新增下列內容:
127.0.0.1 proxy.[instance].[location].[project].cloudsql.[domain]
在該範例中,您可以使用下列指令執行 Cloud SQL Auth Proxy,並在 127.0.0.1:1433 上提供:
cloud-sql-proxy.exe --credentials-file credential.json project:name
在非本機環境執行 Cloud SQL Auth Proxy
如要在非本機環境執行 Cloud SQL Auth Proxy,請按照「在本機執行 Cloud SQL Auth Proxy」一文的操作說明,但在主機檔案中使用不同的項目。
具體來說,如果非本機主機是 MyOtherHost,您可以在主機檔案中加入以下內容:
127.0.0.1 MyOtherHost proxy.[instance].[location].[project].cloudsql.[domain]
排解用戶端 NTLM 備用機制問題
如果您使用 Windows 驗證和執行個體 IP 位址登入執行個體,則必須設定 Kerberos 用戶端,以支援 IP 主機名稱。
Cloud SQL 不支援 NTLM 驗證,但部分 Kerberos 用戶端可能會嘗試改用 NTLM 驗證。如本節所述,如果您嘗試使用 SQL Server Management Studio (SSMS) 連線,並出現下列錯誤訊息,可能的原因是 NTLM 備用:
Login failed. The login is from an untrusted domain and cannot be used with Integrated authentication. (Microsoft SQL Server, Error: 18452)
NTLM 是 Microsoft 的一組驗證安全性通訊協定。另請參閱「改用 NTLM 的原因」。
驗證 Windows 用戶端的 NTLM 備用機制
如要確認 NTLM 備用機制是否導致 Windows 發生錯誤,請按照下列步驟操作:
- 使用所需的地端部署憑證登入 (請勿使用「以...身分執行」)。
- 開啟命令提示字元。
- 執行
klist purge。 - 在 SSMS 中,嘗試使用 Windows 驗證連線至 SQL Server。
- 執行
klist,並檢查是否已為"MSSQLSvc/<address>:1433 @ domain"核發票證。 - 如果沒有這類票證,則錯誤可能是由 NTLM 備用機制造成。
- 如果存在這類票證,請確認 SQL Server 驅動程式未強制執行 NTLM 驗證。此外,請檢查是否透過群組原則強制執行 NTLM 驗證。
驗證 Linux 用戶端的 NTLM 備用機制
在 Ubuntu 16.04 中,請按照本節中的步驟,確認 NTLM 備用機制是否導致錯誤。步驟與其他 Linux 發行版本類似。
設定 Kerberos 驗證
設定 Kerberos 用戶端:
sudo apt-get install krb5-user系統提示您輸入預設領域時,請以大寫字母輸入地端部署網域名稱。
執行下列指令,安裝 SQL Server 指令列工具:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list sudo apt-get update sudo apt-get install mssql-tools unixodbc-dev
使用 Windows 驗證連線
- 執行 kinit 工具,如下所示:
kinit <user_account> - 如要使用 Windows 驗證連線,請執行:
/opt/mssql-tools/bin/sqlcmd -S <address >> - 執行
klist指令,並檢查是否已針對下列項目核發票證:"MSSQLSvc/<address>:1433 @ domain" - 如果未核發票證,上述錯誤可能表示發生導致 NTLM 備用機制的問題。
改用 NTLM 的原因
備用 NTLM 是用戶端設定錯誤,可能與下列情況有關:
- 根據預設,如果主機名稱是 IP 位址,Windows 不會嘗試對主機進行 Kerberos 驗證。如要從受管理網域啟用 Kerberos 驗證,請嘗試 Microsoft 說明文件所述的方法。如果必須使用 FQDN,這個方法不適用於地端部署憑證。
- 無法透過外部信任進行 Kerberos 驗證。請改用這裡所述的樹系信任。
- Kerberos 驗證需要名稱尾碼轉送,才能在其他樹系中尋找服務。請嘗試這裡所述的方法。
- 如果服務未註冊 SPN,Kerberos 驗證就無法運作。請務必使用從 Google Cloud 控制台取得的 FQDN 或 IP 位址,透過 Windows 驗證連線。
地端部署 AD 使用者:建立 Windows 登入
您可以使用地端部署 AD 使用者,建立 SQL Server 適用的 Cloud SQL Windows 登入。
舉例來說,您可以使用 SQL Server Management Studio (SMSS) 進行連線,該工具在 Google Cloud 專案虛擬私有雲 (VPC) 中託管的 Windows VM 上執行。
在這種情況下,SQL Server 適用的 Cloud SQL 僅支援 Kerberos 通訊協定。如果是採用 Kerberos 的 Windows 驗證,用戶端必須解析地端部署 AD 和 Managed Microsoft AD 的 DNS 名稱。
設定單向或雙向信任關係
首先,決定要使用單向或雙向信任關係。
然後,按照操作說明,在地端部署 AD 網域和 Managed Microsoft AD 網域之間建立信任關係。
設定 Windows VM 並建立 Windows 登入資訊
在地端部署 AD 網域和 Managed Microsoft AD 網域之間建立信任關係後,請完成下列步驟。為方便舉例,這些步驟使用 SQL Server Management Studio (SSMS),在 Windows VM 上執行,託管於 Google Cloud 專案的虛擬私有雲中:
- 建立 Windows VM。
- 建立 VM,並使用 Managed Microsoft AD 支援的 Windows 版本。
- 在託管 Managed Microsoft AD 網域的專案中建立 VM。如果 Shared VPC 是授權網路,您也可以在任何服務專案中建立 VM。
- 在虛擬私有雲網路上建立 VM,該網路必須是 Managed Microsoft AD 網域的授權網路,且已設定 Cloud SQL 的私人服務存取權。
- 將 Windows VM 加入 Managed Microsoft AD 網域。
- 在 Windows VM 上安裝 SSMS。
- 在虛擬私有雲網路中解析地端部署網域。
- 在執行 Windows VM 的授權網路上,按照「解析非 Managed Microsoft AD 物件的查詢」頁面上的步驟,啟用地端部署 DNS 解析。該頁面上的步驟是地端部署使用者使用 Kerberos 型 Windows 驗證的必要條件。
為地端部署使用者建立 Windows 登入資訊。
- 請按照建立登入資訊的操作說明,為地端部署使用者建立 Windows 登入資訊。例如,指定類似下列的指令:
CREATE LOGIN [DOMAIN_NAME\USER_NAME] FROM WINDOWS按照應用程式專屬的操作說明,以地端部署使用者身分登入 SQL Server 適用的 Cloud SQL 執行個體。舉例來說,如果您使用的是 SQL Server Management Studio,請參閱這些操作說明。
解決地端部署 AD 使用者相關問題
如果登入 SQL Server 適用的 Cloud SQL 執行個體時發生問題,請執行下列驗證:
- 請按照建立與地端部署網域的信任關係的操作說明,確認地端部署網路和專案授權虛擬私有雲的防火牆設定。
- 驗證地端部署信任關係的名稱尾碼轉送。
- 確認您可以從執行 SSMS 的 Windows VM 執行下列 DNS 解析作業:
nslookup fqdn-for-managed-ad-domainnslookup fqdn-for-on-premises-ad-domainnslookup fqdn-for-cloud-sql-server-instance
提示
- 只要執行個體同時具備私人 IP,即可使用公開 IP;執行個體必須啟用私人 IP。接著,只要公開 IP 和私人 IP 都可用,您就能選擇使用其中一種連線至執行個體。
- 建立執行個體 (包括替換執行個體) 前,請視需要查看下列資訊:
- 支援 Terraform。
- 如果收到下列任一錯誤訊息,請確認您已符合所有
整合必要條件:
- 「找不到 Per-Product Per-Project 服務帳戶」
- 「權限不足,無法與 Managed Service for Microsoft Active Directory 網域整合」
- 如果收到「找不到網域」錯誤訊息,請確認網域名稱正確無誤 (區分大小寫)。
- 如果透過信任關係連結的網域無法進行 Windows 驗證,請確認受管理網域的使用者是否能進行 Windows 驗證。如果是,請按照下列步驟操作:
- 確認您使用的是 DNS 名稱。使用信任關係連結的網域不支援 IP 位址。
- 請務必按照所有步驟建立與地端部署網域的信任關係,包括開啟所有防火牆通訊埠。
- 驗證信任關係。
- 確認信任方向允許網域 (透過信任關係連結) 的使用者在受管理網域中進行驗證。
- 確認已在透過信任關係連結的網域上設定名稱尾碼轉送。
- 確認信任關係在不使用 SQL Server 適用的 Cloud SQL 的情況下正常運作:
- 建立 Windows VM。
- 將執行個體加入 Managed Microsoft AD 網域。
- 舉例來說,請嘗試以透過信任關係連結的網域使用者身分執行記事本。
- 重新啟動用戶端 VM,並重新測試 Windows 驗證。
- 您可能嘗試建立 SQL Server 登入,但收到下列錯誤:「找不到 Windows NT 使用者或群組網域\名稱。請再次檢查名稱」。這可能是因為系統不支援網域本機群組;如適用,請改用全域或通用群組。
- 如果使用者從透過信任關係連結的網域發出 SQL Server 查詢,可能會導致下列錯誤:「Could not obtain information about Windows NT group/user」(無法取得 Windows NT 群組/使用者的相關資訊)。舉例來說,如果您是從透過信任關係連結的網域建立登入資訊,就可能發生這項錯誤。如果您將權限授予透過信任關係連結的網域登入,也可能發生這項錯誤。在這些情況下,重試作業通常會成功。如果重試失敗,請關閉連線並開啟新連線。
如果收到「Could not obtain information about Windows NT group/user」(無法取得 Windows NT 群組/使用者的相關資訊) 錯誤,請使用 Cloud Logging 中 SQL Server 適用的 Cloud SQL 執行個體記錄檔
active_directory.log,檢查與地端部署網域的網路連線。這個檔案包含下列診斷資訊,與地端部署網域的連線能力變更有關:- SQL Server 適用的 Cloud SQL 執行個體信任的地端部署網域。舉例來說,下列記錄顯示從沒有信任網域,變更為兩個新的信任網域,其 NetBIOS 名稱為
ONPREM和CHILD: 如果地端部署網域未列出或記錄為不受信任,請檢查與 Managed AD 網域之間是否存在信任關係,且已通過驗證。如果 Managed AD 網域和地端部署網域之間存在單向信任關係,則地端部署網域信任的其他地端部署網域可能不會顯示。2023-06-12 20:55:09.975 Detected change in trusted onprem domains: Previously trusted onprem domains: []. Current trusted onprem domains: [ONPREM CHILD]
- 使用 SQL Server 適用的 Cloud SQL 執行個體的常規連線偵測 (ping),可連線和無法連線的地端部署網域。舉例來說,下列記錄顯示從沒有可連線網域,變更為兩個新的可連線網域
onprem.com和child.onprem.com: 如果網域未列在可連性記錄中,請先確認該網域已記錄為信任網域。否則不會檢查可連線狀態。我們一律會在具有地端部署執行個體的專案和 Google Cloud 專案之間,建立虛擬私有雲對接。只要再多一個虛擬私有雲對等互連,就會產生 Cloud SQL 不支援的轉移對等互連連線。建議您改用 VPN 通道,將地端部署網域連線至 Cloud SQL。地端部署專案與含有 SQL Server 適用的 Cloud SQL 執行個體的 Google Cloud 專案之間,最多只能有一個對接連線。2023-06-12 20:55:10.664 Detected change in reachable onprem domains: Previously reachable onprem domains: []. Current reachable onprem domains: [onprem.com child.onprem.com]
- 從 SQL Server 適用的 Cloud SQL 執行個體,對地端部署網域成功和失敗的 Microsoft 遠端程序呼叫 (MSRPC) ping。舉例來說,以下記錄顯示從沒有可透過 MSRPC 連線偵測 (ping) 的網域,變更為有兩個新的可透過 MSRPC 連線偵測 (ping) 的網域:
ONPREM和CHILD: MSRPC ping 屬於額外診斷,可能不適用於某些設定。您仍可透過前兩項診斷,驗證地端部署網域連線能力。2023-06-12 20:55:10.664 Detected change in MSRPC pingable domains: Previously pingable onprem domains: []. Current pingable onprem domains: [ONPREM CHILD]
- SQL Server 適用的 Cloud SQL 執行個體信任的地端部署網域。舉例來說,下列記錄顯示從沒有信任網域,變更為兩個新的信任網域,其 NetBIOS 名稱為
如果 SQL Server 查詢導致「登入來自不受信任的網域」錯誤,請注意,系統不支援透過信任關係連結的網域使用者 IP 位址。此外,下列做法也可能解決這個問題:
- 如果 IP 位址用於連結受管理網域的使用者,請按照這些操作說明進行。
- 請避免使用任何 Proxy,並一律使用相同的 DNS 名稱連線至 SQL Server 適用的 Cloud SQL,如 Google Cloud 控制台所示。
- 清除現有的 Kerberos 票證。如果用戶端最近連線至 SQL Server 適用的 Cloud SQL 執行個體,且該執行個體已停止並啟動,就可能發生上述錯誤。或者,如果停用 Windows 驗證,然後重新啟用 SQL Server 適用的 Cloud SQL 執行個體,也可能發生錯誤。如果用戶端使用 Windows 憑證快取,請鎖定並解鎖用戶端工作站,或執行
klist purge。
嘗試啟用 Windows 驗證時,可能會發生錯誤:「這個執行個體需要較新的建立日期,才能支援 Managed Service for Microsoft Active Directory。」請注意這項錯誤的下列事項:
- 在 Cloud SQL 中,如果 SQL Server 適用的 Cloud SQL 執行個體是在 2021 年 3 月 12 日當天或之前建立,則無法與 Managed Microsoft AD 整合。
- 在某些情況下,如果您建立 SQL Server 適用的 Cloud SQL 執行個體,但未在建立時啟用 Managed Microsoft AD,也可能會收到相同的錯誤。查看本節的其他提示後,請建立新的執行個體,並在建立時啟用 Managed Microsoft AD。
嘗試建立 SQL Server 適用的 Cloud SQL 執行個體時,可能會發生「This instance does not support Managed Service for Microsoft Active Directory」(這個執行個體不支援 Managed Service for Microsoft Active Directory) 錯誤。如果收到這則錯誤訊息,表示系統可能不支援該專案,請嘗試使用其他專案。
如果執行個體持續發生 Windows 驗證問題 (無論執行個體是否最近更新),請嘗試取消加入受管理 Active Directory 網域,然後重新加入。方法是使用更新程序取消加入網域,然後重新加入。這麼做不會移除資料庫中任何現有的 Windows 驗證使用者或登入資訊。不過,移除 Windows 驗證會導致執行個體重新啟動。
使用 AD 診斷工具,排解 Google Cloud 控制台中的地端部署網域和 SQL Server 適用的 Cloud SQL 執行個體 AD 設定問題。
疑難排解
按一下表格中的連結,即可查看詳細資料:
| 如果發生這項錯誤... | 問題可能出在... | 不如說 |
|---|---|---|
Per-product, per-project service account not found. |
服務帳戶名稱不正確。 | 在 「Service Accounts」(服務帳戶) 頁面中,確認您已為正確的使用者專案建立服務帳戶。 |
Insufficient permission to integrate with Managed Service for
Microsoft Active Directory domain. |
服務帳戶缺少 managedidentities.sqlintegrator 角色。 |
在「
IAM 與管理」頁面中,將 managedidentities.sqlintegrator 角色新增至服務帳戶。 |
Domain not found。 |
網域不存在或輸入錯誤。 | 確認網域名稱正確無誤。須區分大小寫。 |
The domain is busy with another operation. Please retry.
|
另一個 Cloud SQL 執行個體正在同一個 Managed Active Directory 網域執行作業。 | 重試作業。如果您要對連線至相同網域的 Cloud SQL 執行個體執行批次更新,請限制平行執行的數量。 |
The operation completed but an update to Active Directory failed.
You may experience issues with Windows Authentication on this instance,
please see
https://docs.cloud.google.com/sql/docs/sqlserver/configure-ad
for tips。 |
無法對 Managed Active Directory 網域執行必要更新。 | 如果 Windows 驗證發生問題,可以嘗試取消加入 Managed Active Directory 網域,然後重新加入。方法是使用 更新程序取消加入網域,然後重新加入。這麼做不會移除資料庫中任何現有的 Windows 驗證使用者或登入資訊。不過,移除 Windows 驗證會導致執行個體重新啟動。 |
This instance would need a more recent creation date to support
Managed Service for Microsoft Active Directory. |
在 Cloud SQL 中,如果 SQL Server 適用的 Cloud SQL 執行個體是在 2021 年 3 月 12 日當天或之前建立,則無法與 Managed Microsoft AD 整合。 | 請在 2021 年 3 月 12 日後建立的執行個體上執行作業。 |
後續步驟
- 確認您已詳閱 總覽頁面,包括限制和不支援的功能。該頁面也提供其他說明文件的連結。