DRDA 服務會使用 ADO.NET Framework Provider for SQL Server,與上游本機或遠端 SQL Server 資料庫通訊。 基礎 SQL 用戶端透過記憶體連線或網路(使用命名管道或 TCP/IP)存取 SQL Server。 SQL 用戶端支援選擇性加密和故障轉移功能,以改善安全性和可靠性。 DRDA 服務支援選擇性單一登錄和共用功能,以改善安全性和效能。 您可以編輯 MsDrdaService.exe.config 檔案,以指示DRDA服務如何管理SQL用戶端與SQL Server 連線。
網路
DRDA 服務會透過 Microsoft ADO.NET Framework Provider for SQL Server 和基礎的 SQL 用戶端來連線到 SQL Server。 MsDrdaService.exe.config 檔案 的資料庫 元素包含用於管理外系 SQL 用戶端連線的網路設定。 資料庫類型是 Microsoft.HostIntegration.Drda.RDB.SqlDatabase,它會定義輸出 SQL 用戶端連線的網路設定。
連接字串
connectionString 屬性會定義DRDA服務在定義 Microsoft ADO.NET Framework Data Provider for SQL Server 連接物件時要使用的自變數名稱和值組清單。 這個 必要 屬性接受 字串 值。 默認值為 Data Source=localhost;整合式安全性=true;MultipleActiveResultSets=true。
| 項目 | 說明 |
|---|---|
| 應用程式名稱 | [應用程式名稱] 屬性會指示 SQL Client 應用程式的名稱與連接產生關聯。 這個 選擇性 屬性接受 字串 值。 預設值為 空字串。 |
| 連線逾時 |
Connect Timeout 屬性會指示 SQL 用戶端在終止嘗試併產生錯誤之前,等候伺服器連線的時間長度(以秒為單位)。 這個 選擇性 屬性接受 整數 值。 有效值大於或等於0,且小於或等於2147483647。預設值為 15 秒。 |
| 數據源 |
數據源屬性會定義 SQL Server 實例的名稱或網路位址,以使用 TCP/IP 或命名管道連線。 這個 必要的 屬性接受 字串 值。 預設值為 空字串。 針對 TCP/IP,格式化的值會以 “tcp:” 前置詞開頭,後面接著 IPv4 或 IPv6 格式的 TCP/IP 別名或位址,後面接著反斜杠分隔的 SQL Server 實例名稱或逗號分隔的 TCP/IP 埠號碼。 - tcp:<主機名稱>\<實例名稱> - tcp:<主機名>,<TCP/IP 埠號碼> 針對命名管道,格式化的值會以 “np:” 前置詞開頭,後面接著主機名和命名管道名稱。 - np:\\<主機名稱>\pipe\<管道名稱> |
| 加密 | Encrypt 屬性會指示 SQL 用戶端使用安全套接字層 (SSL) 來加密 SQL Client 與 SQL Server 之間傳送的所有數據。 這個 選擇性 屬性 接受 true、false、yes 和 no 的布爾值。 預設值為 false。 |
| 故障轉移合作夥伴 | Failover Partner 屬性會通知 SQL 用戶端資料庫鏡像設定所在的 SQL Server 名稱。 這個 選擇性 屬性接受 字串 值。 預設值為 空字串。 |
| 初始目錄 | 初始目錄屬性會指示 SQL 用戶端要連接到的資料庫。 這個 選擇性 屬性接受最多 128 個字元的 字串 值。 預設值為 空字串。 |
| 整合式安全性 |
整合式安全性屬性會指示 SQL 用戶端透過安全性支援提供者介面 (SSPI) 使用 Windows 驗證連線到 SQL Server。 這個 選擇性 屬性接受 true、false、yes 和 no 的 布爾 值。 預設值為 false。 當這個屬性值為 true 或是時,DRDA 服務會使用 Windows 驗證連線到 SQL Server。 - 連接憑證衍生自運行中的 MsDrdaService.exe(服務帳戶或從命令列執行時登入的使用者)。 - 當以 值指定個別的分支機構應用程式自變數時,連線認證衍生自 Enterprise Single Sign-On 服務。 如需詳細資訊,請參閱分支機構應用程式主題。 當這個屬性值為 false 或否時,DRDA 服務會使用 SQL Server 驗證連線到 SQL Server。 - 連線認證衍生自 ConnectionString 中的 [使用者識別符] 和 [密碼] 自變數。 - 當使用者識別碼和密碼自變數不存在時,連線認證衍生自DRDA應用程式要求者數據用戶端。 注意: 使用 Windows 起始的企業單一 Sign-On 和對應的驗證網域功能時,您必須指定 false。 |
| 集區大小上限 | [集區大小上限] 屬性會定義 SQL 用戶端應該保留在連接集區中的連線數目上限。 這個 選擇性 屬性接受 整數 值。 預設值是 100。 |
| 多重主動結果集 | MultipleActiveResultSets 屬性指示 SQL Server 維持多個活動結果集(MARS),包括伺服器開放的游標對象。 此 必要 屬性接受布爾值:true、false、yes 和 no。 預設值為 true。 注意: DRDA 服務需要 MARS 支援由靜態 SQL CURSOR WITH HOLD 語句建立的伺服器游標。 |
| 網路連結庫 | 網路連結庫屬性會指示 SQL 用戶端使用共用記憶體或 TCP/IP 連線到 SQL Server。 這個 選擇性 屬性接受 dbmslpcn (共用記憶體)、dbnmpntw (命名管道)或 dbmssocn (TCP/IP) 的 字串 值。 預設值為 dbmslpcn。 |
| 封包大小 | Packet Size 屬性會定義 SQL 用戶端將用來與 SQL Server 實例通訊的網路封包位元組大小。 這個 選擇性 屬性接受 512 到 32676 的 整數 值。 預設值為 8192。 |
| 密碼 | 當 SQL 用戶端使用 SQL Server 驗證時, Password 屬性會定義登入密碼的值。 這個 選擇性 屬性接受最多 128 個字元的 字串 值。 預設值為 空字串。 |
| 資源整合 | Pooling 屬性會指示 SQL 用戶端在DRDA服務關閉時,新增新建立的連線至集區。 在下一次嘗試開啟相同連接時,若使用相同的連接字串屬性值,該連接將會從集區中獲取。 這個 選擇性 屬性接受 true、false、yes 和 no 的 布爾 值。 預設值為 false。 |
| 信任伺服器證書 | TrustServerCertificate 會指示 SQL 用戶端在略過憑證鏈結以驗證信任時加密通道。 這個 選擇性 屬性接受 true、false、yes 和 no 的 布爾 值。 預設值為 false。 |
| 用戶標識碼 | 當 SQL 用戶端使用 SQL Server 驗證時, 使用者識別碼 屬性會定義登入使用者識別碼的值。 這個 選擇性 屬性接受最多 128 個字元的 字串 值。 預設值為 空字串。 |
| 工作站標識碼 | 工作站標識碼屬性會在連線到 SQL Server 時定義工作站的名稱。 這個 選擇性 屬性接受最多 128 個字元的 字串 值。 預設值為 空字串。 |
DRDA 服務支援這些 SqlClient 連接字串自變數名稱和值。
如需詳細資訊,請參閱https://msdn.microsoft.com/library/system.data.sqlclient.sqlconnection.connectionstring.aspx。
用戶端應用程式名稱
clientApplicationName 屬性會指示DRDA服務如何設定 SQL 用戶端應用程式名稱連接屬性。 這個 選擇性 屬性接受 字串 值。 默認值為 externalName,這是代表 DRDA AR 用戶端程式之作業、工作或程式名稱的 DRDA 外部名稱 (EXTNAM)。 選擇性地指定 transactionIdentifier 的值,這是 EXTNAM 的位元組 5-8,代表 DRDA AR 用戶端程式在 z/OS 的 CICS 環境中執行時的交易標識符名稱。
預存程序呼叫逾時
storedProcedureCallTimeout 屬性會指示DRDA服務等候 SQL Server 處理 CALL 語句以執行預存程式的時間長度,再終止嘗試併產生錯誤。 這個 選擇性 屬性接受 整數 值。 有效值大於或等於0,且小於或等於2147483647。 值為 0 表示沒有限制(嘗試執行命令將會無限期等候)。 預設值為 30 秒。
備註
此逾時值是命令執行或處理結果期間所有網路讀取的累計逾時。 傳回第一行數據後仍然可能會發生超時,這不包括使用者處理時間,而僅限於網路讀取時間。
SQL 應用程式
MsDrdaService.exe.config 檔案的 sqlApplicationManager 元素包含管理外系 SQL 用戶端連線的應用程式設定。 sqlApplicationManager 類型是 Microsoft.HostIntegration.Drda.Server.SqlApplicationManager,負責處理傳出的 SQL 用戶端連線。
發生錯誤時回復交易
rollbackTransactionOnError 屬性會指示DRDA服務在負 SQL Server 資料庫錯誤之後執行ROLLBACK。 這個 選擇性 屬性接受 布爾 值。 預設值為 true。
備註
若此值設定為 false,可能會增強與附加至 DB2 for z/OS 的自定義程式的相容性。 不過,將此值設定為 false 可能會中斷與標準開放平臺 (例如:ODBC、IBM DB2 Connect JDBC Driver) 的 DRDA 用戶端的相容性。
安全
DRDA 服務會處理 TCP/IP 網路連線的驗證。 DRDA 服務支援選擇性加密和單一登錄功能,以改善安全性和效能。 MsDrdaService.exe.config 檔案的 securityManager 元素包含管理內含 DRDA 用戶端連線的安全性設定。 securityManager 類型是 Microsoft.HostIntegration.Drda.Server.SecurityManager,負責處理進入 TCP/IP 網路連線的驗證。
ESSO Host-Initiated 分支機構應用程式
hostInitiatedAffiliateApplication 屬性定義了 DRDA 服務在 SQL 用戶端使用 Windows 驗證時,應使用 Microsoft Enterprise Single Sign-On 的關聯應用程式名稱,將傳入的 DRDA AR 用戶端憑證對應到 Windows Active Directory 網域使用者。 這個 選擇性 屬性接受 字串 值。 默認值為 空字串,會指示DRDA服務不要使用主機起始的ESSO。
備註
使用主機起始的ESSO時,您必須在 SQL Server 連接字串中指定 Integrated Security=true。
分支機構應用程式是邏輯實體,代表系統或子系統,例如主機、後端系統或IBM DB2 資料庫用戶端。 請連絡 SSO 系統管理員以取得 SSO 分支機構應用程式名稱。
ESSO Windows-Initiated 分支機構應用程式
當 SQL 用戶端使用 SQL Server 驗證時,windowsInitiatedAffiliateApplication 屬性會定義 DRDA 服務應該使用的附屬應用程式名稱,以便將 Windows Active Directory 網域用戶對應至出站的 SQL 用戶端認證,與 Microsoft Enterprise Single Sign-On 搭配使用。 這個 選擇性 屬性接受 字串 值。 默認值為 空字串,會指示DRDA服務不要使用Windows起始的ESSO。
選擇性地指定 isRdbName 的值,以指示DRDA服務使用 ACCRDB (Access Relational Database) 通訊協定流程上的內系結 RDBNAM(關係資料庫名稱)作為 Windows-Initiated 分支機構應用程式名稱。 定義 Windows 起始的 ESSO 分支機構應用程式時,您必須建立第三個字段 (“ConnectionString” )。 憑證對應必須在 ConnectionString 欄位中包含參數值對(Initial Catalog=<SQL_Server_Database_Name>)。 認證對應可能包含用於密碼字段的佔位符(MS$SAME)。
備註
使用 Windows 起始的 ESSO 時,您必須在 SQL Server 連接字串中指定 Integrated Security=true。
分支機構應用程式是邏輯實體,代表系統或子系統,例如主機、後端系統或IBM DB2 資料庫用戶端。 請連絡 SSO 系統管理員以取得 SSO 分支機構應用程式名稱。
安全性令牌逾時
DRDA 服務會快取從 Microsoft Enterprise Single Sign-On 和 Mapped Authentication Domain 功能取得的安全性令牌,並根據配置的持續時間進行保存,然後在使用整合式安全性支援提供者介面(SSPI)連線到配置為使用 Windows 驗證的 SQL Server 時使用。
securityTokenTimeout 屬性會指示DRDA伺服器保留一段時間的安全性令牌,之後再取得新的Windows用戶端標識碼 (CID)。 這個 選擇性 屬性接受 持續時間 值。 默認值為 PT8H (時間週期為 8 小時)。 持續時間值是以 PnYnMnDTnHnMnS 形式指定。
| 項目 | 說明 |
|---|---|
| P | 持續時間(必要) |
| 紐約 | 年數。 |
| 奈米 | 月數。 |
| nD | 天數。 |
| T | 時間區段的開始(需要指定由小時、分鐘或秒組成的時間持續時間)。 |
| nH | 時數。 |
| 納米 | 分鐘數。 |
| S | 秒數。 |
以 XML 格式表示的時間持續時間。
映射驗證
mappedAuthenticationDomain 屬性指示 DRDA 服務將進入的 DRDA 用戶端認證(使用者名稱和密碼)映射到哪個 Microsoft Windows Active Directory 網域,這在連接到配置成使用整合式安全性支援提供者介面(SSPI)的 SQL Server 時適用,但在使用 Microsoft Enterprise 單一登錄時並不適用。 這個 選擇性 屬性接受 字串 值。 預設值為 空字串。
備註
映射身份驗證網域的安全性驗證需要下列額外的設定。
SQL Server 資料庫連接
SQL Server 連接字串中的整合式安全性自變數必須設定為 true 的值。
MsDrdaService.exe.config 檔案之資料庫元素內的 hostInitiatedAffiliateApplication 屬性必須設定為空字串的值。 您無法同時使用主機啟動的 ESSO 與映射驗證網域的安全驗證。
DRDA 服務帳戶的 Windows 安全性
MsDrdaService.exe 必須在網域使用者帳戶(Domain\User)的環境中執行。
服務帳戶必須是 HIS 系統管理員和 HIS 執行時間用戶本地組的成員。
本機安全策略
服務帳戶需要這些本機安全策略設定,才能以服務身分執行:
服務帳戶需要以服務身分登入。
服務帳戶需要扮演作業系統的一部分。
服務帳戶需要 Access Credential Manager 作為受信任的呼叫端。
服務帳戶需要啟用計算機和用戶帳戶的委派信任功能。
DB2 for z/OS Connection Database (CDB)
| 表 | 資料行 | 價值觀 | 說明 |
|---|---|---|---|
| SYSIBM。IPNAMES | 安全外出 | P | 值 「P」 表示具有授權識別碼的密碼。 |
| SYSIBM。IPNAMES | 使用者名稱 | O | 值「O」表示來自 SYSIBM.USERNAMES 表的輸出識別碼。 |
| SYSIBM。USERNAMES | 類型 | O | 值 「O」 表示輸出轉譯。 |
| SYSIBM。USERNAMES | AUTHID | <字串> | 字串值是 Windows Active Directory 網域用戶名稱。 |
| SYSIBM。USERNAMES | 密碼 | <字串> | 字串值是 Windows Active Directory 網域密碼。 |
z/OS 上的 DB2 連線資料庫設定,要求支援對應驗證網域的安全性驗證。
驗證查詢逾時
authenticationLookupTimeout 屬性會指示DRDA伺服器在失敗之前等候安全性驗證查閱要求的時間持續時間。 這個 選擇性 屬性接受 持續時間 值。 預設值為 PT30S (時間週期為 30 秒)。 持續時間值是以 PnYnMnDTnHnMnS 形式指定。
| 項目 | 說明 |
|---|---|
| P | 持續時間(必要) |
| 紐約 | 年數。 |
| 納米 | 月數。 |
| nD | 天數。 |
| T | 時間區段的開始(需要指定由小時、分鐘或秒組成的時間持續時間)。 |
| nH | 時數。 |
| 納米 | 分鐘數。 |
| S | 秒數。 |
以 XML 格式表示的時間持續時間。
身份驗證查找重試
authenticationLookupRetries 屬性會指示DRDA伺服器在失敗之前嘗試安全性驗證查閱要求的次數。 這個 選擇性 屬性接受 整數 值。 預設值為 3 次重試。
SET 語句
DRDA 服務會透過 Microsoft ADO.NET Framework Provider for SQL Server 和基礎的 SQL 用戶端來連線到 SQL Server。
sqlSetMsDrdaService.exe.config 檔案的 元素包含DRDA Server會針對每個SQL Server 連線發出的 SET 語句,以改變目前特定資訊的會話處理方式。
SET ARITHABORT
屬性 arithAbort 會指示DRDA伺服器在連接時間發出SET ARITHABORT語句,要求SQL Server 在查詢執行期間發生溢位或零除錯誤時終止查詢。 這個 optional 屬性接受值 string 。 預設值為 ON。