Azure SQL連接設定

適用于:Azure SQL Database Azure Synapse Analytics (專用 SQL資料庫 (前 SQL DW) )

本文介紹可控制伺服器與 Azure SQL Database 和專用 SQL 資料庫 (Azure Synapse 分析SQL DW) 的設定。 這些設定會SQL Database所有SQL專用 (,SQL與伺服器) 的 DW 資料庫。

重要

本文不適用於 Azure 或受管理SQL實例。 本文並不適用于 Azure Synapse 分析SQL中的專用資料庫。 請參閱 Azure Synapse Analytics IP 防火牆 規則,以瞭解如何設定 Azure Synapse 分析與工作區的 IP 防火牆規則。

從防火牆和虛擬網路畫面可進行連接 設定,如 下列螢幕擷取畫面所示:

Screenshot of the Firewalls and virtual networks settings in Azure portal for SQL server

注意

這些設定在適用後立即生效。 如果您的客戶不符合每個設定的需求,可能會遇到連接遺失的問題。

拒絕公用網路存取

拒絕公用網路存取 設定為 時,僅允許透過私人端點進行連接。 當此設定為 No (預設) 時,客戶可以使用公用端點 (與 IP 防火牆規則,或使用虛擬網路防火牆規則) 或私人端點 (來連結,如網路存取概觀所述,使用 Azure Private Link ) 。

Diagram showing connectivity when Deny public network access is set to yes versus when Deny public network access is set to no.

在邏輯伺服器上沒有任何現有私人端點的情況下,將拒絕公用 網路 存取設定為 Yes 的任何嘗試都會失敗,出現錯誤訊息,類似:

Error 42102
Unable to set Deny Public Network Access to Yes since there is no private endpoint enabled to access the server.
Please set up private endpoints and retry the operation.

注意

若要定義邏輯伺服器上已設定為私人端點的虛擬網路防火牆規則,請設定拒絕公用網路存取權至否

拒絕公用網路存取 設定為 時,僅允許透過私人端點進行連接。 所有透過公用端點進行的連接都會遭到拒絕,並出現類似以下的錯誤訊息:

Error 47073
An instance-specific error occurred while establishing a connection to SQL Server. 
The public network interface on this server is not accessible. 
To connect to this server, use the Private Endpoint from inside your virtual network.

拒絕公用網路存取 設定為 時,任何新增或更新防火牆規則的嘗試都會以類似以下的錯誤訊息拒絕:

Error 42101
Unable to create or modify firewall rules when public network interface for the server is disabled. 
To manage server or database level firewall rules, please enable the public network interface.

透過 PowerShell 變更公用網路存取權

重要

Azure SQL Database仍然支援 PowerShell Azure Resource Manager 模組,但所有未來的開發都適用于 Az.Sql 模組。 針對這些 Cmdlet,請參閱 AzureRM.Sql。 Az 模組和 AzureRm 模組中命令的引數基本相同。 下列腳本需要Azure PowerShell模組

下列 PowerShell 腳本顯示如何在伺服器層級使用 GetSetGet 屬性:

# Get the Public Network Access property
(Get-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group).PublicNetworkAccess

# Update Public Network Access to Disabled
$SecureString = ConvertTo-SecureString "password" -AsPlainText -Force

Set-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group -SqlAdministratorPassword $SecureString -PublicNetworkAccess "Disabled"

透過 CLI 變更公用網路存取權

重要

本節中所有腳本都需要Azure CLI。

Bash 命令殼中的 Azure CLI

下列 CLI 腳本顯示如何在 Bash 命令殼中變更公用 網路 存取設定:


# Get current setting for Public Network Access
az sql server show -n sql-server-name -g sql-server-group --query "publicNetworkAccess"

# Update setting for Public Network Access
az sql server update -n sql-server-name -g sql-server-group --set publicNetworkAccess="Disabled"

最小 TLS 版本

最低傳輸層安全性 (TLS) 版本設定可讓客戶選擇其資料庫使用的 TLS SQL版本。

目前,我們支援 TLS 1.0、1.1 和 1.2。 設定最小 TLS 版本可確保支援較新的 TLS 版本。 例如,選擇 TLS 版本 1.1 表示僅接受與 TLS 1.1 和 1.2 的關聯,且拒絕與 TLS 1.0 的關聯。 測試以確認您的應用程式支援之後,建議您將最小 TLS 版本設定為 1.2。 此版本包含先前版本中的漏洞修正程式,是最新版 TLS 中支援Azure SQL Database。

重要

最小 TLS 版本的預設值是允許所有版本。 強制執行 TLS 版本之後,無法還原為預設值。

對於應用程式仰賴舊版 TLS 的客戶,我們建議您根據應用程式的需求設定最小 TLS 版本。 對於仰賴應用程式使用未加密連接來連接的客戶,建議您不要設定任何最小的 TLS 版本。

如要詳細資訊,請參閱TLS 對連接SQL Database考慮

設定最小 TLS 版本之後,使用 TLS 版本低於最低 TLS 版本之客戶的登入嘗試將會失敗,併發生下列錯誤:

Error 47072
Login failed with invalid TLS version

在 Azure 入口網站中設定最小 TLS 版本

Azure 入口網站中,前往SQL伺服器資源。 在安全性 設定 下,選取 防火牆和虛擬網路。 選取所有與伺服器SQL資料庫所需的最小 TLS 版本,然後選取儲存

透過 PowerShell 設定最小 TLS 版本

重要

Azure SQL Database仍然支援 PowerShell Azure Resource Manager 模組,但所有未來的開發都適用于 Az.Sql 模組。 針對這些 Cmdlet,請參閱 AzureRM.Sql。 Az 模組和 AzureRm 模組中命令的引數基本相同。 下列腳本需要Azure PowerShell模組

下列 PowerShell 腳本在邏輯伺服器層級顯示如何與 GetSet 最小 Get 屬性:

# Get the Minimal TLS Version property
(Get-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group).MinimalTlsVersion

# Update Minimal TLS Version to 1.2
$SecureString = ConvertTo-SecureString "password" -AsPlainText -Force

Set-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group -SqlAdministratorPassword $SecureString  -MinimalTlsVersion "1.2"

透過 Azure CLI 設定最小 TLS 版本

重要

本節中所有腳本都需要Azure CLI。

Bash 命令殼中的 Azure CLI

下列 CLI 腳本顯示如何在 Bash 命令殼中變更最小 TLS 版本設定:

# Get current setting for Minimal TLS Version
az sql server show -n sql-server-name -g sql-server-group --query "minimalTlsVersion"

# Update setting for Minimal TLS Version
az sql server update -n sql-server-name -g sql-server-group --set minimalTlsVersion="1.2"

變更連接策略

連接策略會決定客戶如何Azure SQL Database。

透過 PowerShell 變更連接策略

重要

Azure SQL Database仍然支援 PowerShell Azure Resource Manager 模組,但所有未來的開發都適用于 Az.Sql 模組。 針對這些 Cmdlet,請參閱 AzureRM.Sql。 Az 模組和 AzureRm 模組中命令的引數基本相同。 下列腳本需要Azure PowerShell模組

下列 PowerShell 腳本顯示如何使用 PowerShell 變更連接策略:

# Get SQL Server ID
$sqlserverid=(Get-AzSqlServer -ServerName sql-server-name -ResourceGroupName sql-server-group).ResourceId

# Set URI
$id="$sqlserverid/connectionPolicies/Default"

# Get current connection policy
(Get-AzResource -ResourceId $id -ApiVersion 2014-04-01 -Verbose).Properties.ConnectionType

# Update connection policy
Set-AzResource -ResourceId $id -Properties @{"connectionType" = "Proxy"} -f

透過 Azure CLI 變更連接策略

重要

本節中所有腳本都需要Azure CLI。

Bash 命令殼中的 Azure CLI

下列 CLI 腳本顯示如何在 Bash 命令介面中變更連接策略:

# Get SQL Server ID
sqlserverid=$(az sql server show -n sql-server-name -g sql-server-group --query 'id' -o tsv)

# Set URI
ids="$sqlserverid/connectionPolicies/Default"

# Get current connection policy
az resource show --ids $ids

# Update connection policy
az resource update --ids $ids --set properties.connectionType=Proxy

從命令提示Windows Azure CLI

下列 CLI 腳本顯示如何變更連接策略,Windows安裝 Azure CLI (命令提示) :

# Get SQL Server ID and set URI
FOR /F "tokens=*" %g IN ('az sql server show --resource-group myResourceGroup-571418053 --name server-538465606 --query "id" -o tsv') do (SET sqlserverid=%g/connectionPolicies/Default)

# Get current connection policy
az resource show --ids %sqlserverid%

# Update connection policy
az resource update --ids %sqlserverid% --set properties.connectionType=Proxy

下一個步驟

  • 若要概觀連接在 Azure SQL Database 運作方式,請參閱連接架構
  • 若要瞭解如何變更伺服器的連接策略,請參閱 conn-policy