Share via


使用原生 XML Web Service 的最佳作法

此主題提供在 SQL Server 2005 中計劃和評估「原生 XML Web Service」時,需考慮的一些最佳作法,以利商務方案之用。這些建議是使用下列方式來協助您:

  • 當您在 SQL Server 2005 中使用「原生 XML Web 服務」時,可協助保護 SQL Server 的安裝。
  • 提供使用指導方針,以協助改善 SQL Server 的安裝效能。這些指導方針可協助您決定在 SQL Server 2005 中使用「原生 XML Web Service」 時,是否能有效地服務應用程式。

安全性最佳作法

請在 SQL Server 2005 中部署「原生 XML Web Service」 時,考慮下列建議的安全性最佳作法:

  • 使用 Kerberos 驗證。
  • 將端點連接權限限制為特定的使用者或群組。
  • 使用「安全通訊端層」交換敏感資料。
  • 在防火牆後面使用 SQL Server。
  • 確認伺服器上的 Windows 「來賓」(Guest) 帳戶已停用。
  • 依需要控制和更新端點狀態。
  • 儘可能使用安全的端點預設值。

使用 Kerberos 驗證

當您使用 CREATE ENDPOINT 來建立端點時,請選取 AUTHENTICATION=KERBEROS 或 AUTHENTICATION = INTEGRATED,以便在 Kerberos 之下啟用 Windows 整合式安全性,以作為端點上所使用的驗證類型。第一個選項,將只允許 Kerberos 作為端點驗證的模式。第二個選項將允許端點支援 NTLM 與 Kerberos 驗證。

對於驗證而言,Kerberos 通訊協定使用諸如相互驗證等內建功能來改善安全性。這表示伺服器與用戶端兩者的身分皆需驗證。

當您使用 Kerberos 驗證時,SQL Server 必須將「服務主要名稱」( Service Principal Name,SPN) 與它將執行的帳戶相關聯。如需詳細資訊,請參閱<使用 Http.sys 註冊 Kerberos 服務主要名稱>。

將端點連接權限限制為特定的使用者或群組

在建立部署所需的端點後,請使用 Transact-SQL 陳述式 (例如 GRANT CONNECT 與 ALTER ON ENDPOINT) 來設定端點連接權限,以保謢它們的安全。當您指派連接權限時,請務必明確且只將權限授與給有需要存取 SQL Server 端點的特定使用者或特定群組。

一般而言,您應該將權限限制成只允許個別使用者連接端點。不建議將存取權授與 public 角色。我們建議您對 SQL Server 的權限模型做充份的瞭解。您可以使用此模型來明智地控制端點的存取。

ms190399.note(zh-tw,SQL.90).gif重要事項:
public 角色是一個特別的資料庫角色,每個 SQL Server 使用者都屬於此角色。此角色包含任何可以存取資料庫的使用者之預設存取權限。因為此資料庫角色是 SQL Server 的內建預設角色,並可作為授與所有使用者的方式 (與 Windows 權限中的「任何人」或「已驗證的使用者」相似),當您在 SQL Server 中設定權限時,應該謹慎使用。

如需詳細資訊,請參閱<GRANT 端點權限 (Transact-SQL)>。

使用安全通訊端層交換敏感資料

「安全通訊端層」(SSL) 通訊協定透過安全的 TCP/IP 通訊端 (IP 位址與 TCP 通訊埠編號組合) 介面,支援資料的加密與解密。為了讓 SQL Server 端點提供 SSL 加密,您必須先設定憑證。

當您為預設的 443 SSL 通訊埠註冊憑證時,請考慮其他的應用程式也可能共用相同的憑證。例如,Internet Information Services (IIS) 可以主控相同通訊埠上的 SSL 流量,在這樣的情況下,此組態可能會影響 IIS 使用者。由於共用 SSL 通訊埠及其憑證,可能會有安全性的隱憂。

如需詳細資訊,請參閱<設定 SSL 使用的憑證>。

在防火牆後面使用 SQL Server

為了獲得最佳的安全性,您應該只在防火牆後面使用 SQL Server 2005 的「原生 XML Web Service」。請務必確定在設定端點時,為了提供 HTTP 存取所使用的任何 TCP 通訊埠編號,必須受到防火牆的保護。允許 SQL Server 的安裝可以直接由網際網路用戶端存取且不受防火牆的保護,並不是建議的網路組態。如需詳細資訊,請參閱<SQL Server 安裝的安全性考量>。

確認伺服器上的 Windows 來賓帳戶已停用

「來賓」帳戶是大部份的 Microsoft Windows 版本中所提供的內建使用者帳戶。在 中,預設是停用的。在 與 中,預設是啟用的。

在使用端點時,為了降低介面攻擊的風險,您應該確定執行 SQL Server 的伺服器上已停用 Guest 帳戶。如需詳細資訊,請參閱 Windows 說明中的<若要停用或啟用本機使用者帳戶>。

依需要控制和更新端點狀態

當您使用 CREATE ENDPOINT 建立端點時,除非您指定 STATE = STARTED 來明確啟動狀態,否則會停止預設狀態。若要控制現有端點的狀態,請使用 ALTER ENDPOINT 指定 STOPPED、STARTED 或 DISABLED。

例如,請使用下列陳述式啟動或停止先前建立的端點 sql_endpoint

ALTER ENDPOINT sql_endpoint STATE=STARTED

ALTER ENDPOINT sql_endpoint STATE=STOPPED

您也應該停用端點或卸除某個或特定端點上的特定 Web 方法,如果您目前不想再使用它們的話。

下列範例顯示停用端點。

ALTER ENDPOINT sql_endpoint STATE=DISABLED

ms190399.note(zh-tw,SQL.90).gif附註:
在停用端點後,必須等到重新啟動 SQL Server 服務 (MSSQLServer) 才能重新啟動端點。

若要從端點卸除 Web 方法,您將使用與下列格式類似的陳述式:

ALTER ENDPOINT sql_endpoint

FOR SOAP

(

DROP WEBMETHOD 'SayHello'

)

若要卸除端點,請使用 DROP ENDPOINT

儘可能使用安全的端點預設值

當您使用 CREATE ENDPOINTALTER ENDPOINT 建立或修改端點時,除非您明確地設定其他的值,否則會套用下列選項的預設值:

  • BATCHES = DISABLED
    Transact-SQL 會停用該端點的批次模式。
  • LOGIN_TYPE = WINDOWS
    端點使用者只允許 Windows 驗證。

除非您必須修改這些設定值,以支援應用程式部署中您想要和需要的存取權或功能,否則我們建議您儘可能使用這些選項的預設值。

如需有關選擇加密演算法的資訊,請參閱<選擇加密演算法>。

效能最佳作法

請在 SQL Server 2005 中部署「原生 XML Web Service」 時,考慮下列建議的效能最佳作法:

  • 在適當的案例中部署。
  • 在計劃以 SOAP 為基礎的方案時其他伺服器資源的因素。
  • 針對您的需求設定適當的 WSDL 選項。

部署適當的案例

在 SQL Server 2005 中的「原生 XML Web Service」最適用於包含下列需求的案例:

  • 您的應用程式會傳回或使用 XML 資料。
  • 您的應用程式高度依賴商務邏輯的預存程序。
  • 在商務方案中,您想要將 SQL Server 主控的 Web 服務應用程式與其他的 Web 服務應用程式整合,以達成「服務導向架構」(Service Oriented Architecture,SOA) 的目標。
  • 您正在尋找 SQLXML 中層方案較好的執行替代方案,以便在相同的伺服器上將 Web 服務部署在一起。
  • 您想要為網際網路網站產生和發行靜態報告,該網站中豐富的功能集以及 SQL Server 2005 Reporting Services (SSRS) 的其他負擔可能會超出您的需求。

同樣的,在包含下列需求的案例中,我們不建議使用 SQL Server 2005 中的「原生 XML Web Service」:

  • 您的應用程式是用以插入或擷取二進位大型物件 (BLOB) 的資料,例如大型 binaryimagetext 值。
  • 您的應用程式需要即時交易處理以及關鍵回應時間。
  • 您正在使用 SQL Server 並結合其他需要大量處理的應用程式,例如 TPC Benchmark C (TPC-C) 應用程式。

在計劃以 SOAP 為基礎的方案時其他伺服器資源的因素。

基於容量計劃的目的,請注意不同於「表格式資料流」(TDS) 通訊協定,SOAP 效能會依不同的應用程式而不同,而且可能需要額外的伺服器資源負擔。例如,SQL Server 產品小組所執行的 SQL Server 2005 預先測試,在傳回大量 XML 文件的狀況中,以 SOAP 為基礎的存取時間比以 TDS 為基礎的存取時間還要多出 20% 至 30%。

針對您的需求設定適當的 WSDL 選項

在部署 SQL Server 2005 中的「原生 XML Web Service」之前,您應該決定適當的 WSDL 選項,以便在方案所需的所有支援的用戶端及作業系統中使用。

為了在異質環境 (即 Web 服務用戶端包含非 Windows 的作業系統) 中達到最大的互通性,請使用簡單 WSDL。針對以 Microsoft Visual Studio 2005 開發之只支援 Windows 的環境,您可以使用 預設 WSDL 來存取 Visual Studio 2005 中所包含的豐富類型支援。

有時,協力廠商 SOAP 用戶端可能需要自訂 WSDL 以利交互使用。如需詳細資訊,請參閱<實作自訂 WSDL 支援>。

請參閱

參考

設定 SSL 使用的憑證

其他資源

SQL Server 的安全性考量
CREATE ENDPOINT (Transact-SQL)
ALTER ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助