DRDA 服务使用适用于 SQL Server 的 ADO.NET 框架提供程序与上游本地或远程 SQL Server 数据库通信。 基础 SQL 客户端通过内存连接或通过网络使用命名管道或 TCP/IP 协议访问 SQL Server。 SQL 客户端支持可选的加密和故障转移功能,以提高安全性和可靠性。 DRDA 服务支持可选的单一登录和池功能,以提高安全性和性能。 可以编辑 MsDrdaService.exe.config 文件,以指示 DRDA 服务如何管理 SQL 客户端到 SQL Server 连接。
网络
DRDA 服务通过适用于 SQL Server 和基础 SQL 客户端的 Microsoft ADO.NET 框架提供程序连接到 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。
| 条目 | DESCRIPTION |
|---|---|
| 应用程序名称 | 应用程序名称属性指示 SQL 客户端应用程序的名称与连接相关联。 此 可选 属性接受 字符串 值。 默认值为 空字符串。 |
| 连接超时 |
Connect Timeout 属性指示 SQL 客户端在终止尝试并生成错误之前等待与服务器的连接(以秒为单位)。 此 可选 属性接受 整数 值。 有效值大于或等于 0,小于或等于 2147483647。默认值为 15 秒。 |
| 数据源 |
数据源属性定义使用 TCP/IP 或命名管道连接到的 SQL Server 实例的名称或网络地址。 此 必需 属性接受 字符串 值。 默认值为 空字符串。 对于 TCP/IP,格式化值以“tcp:”前缀开头,后跟 IPv4 或 IPv6 格式的 TCP/IP 别名或地址,后跟反斜杠分隔的 SQL Server 实例名称或逗号分隔的 TCP/IP 端口号。 - tcp:<主机名>\<实例名> - tcp:<主机名>,<TCP/IP 端口号> 对于命名管道,格式化值以“np:”前缀开头,后跟主机名和命名管道名称。 - np:\\<host name>\pipe\<pipe 名称> |
| 加密 | Encrypt 属性指示 SQL 客户端使用安全套接字层(SSL)来加密在 SQL 客户端和 SQL Server 之间发送的所有数据。 此 可选 属性 接受 值为 true、false、yes 和 no 的布尔值。 默认值是 false。 |
| 故障切换伙伴 | 故障转移伙伴属性告知 SQL 客户端配置数据库镜像的 SQL Server 的名称。 此 可选 属性接受 字符串 值。 默认值为 空字符串。 |
| 初始目录 | Initial Catalog 属性用来指示 SQL 客户端连接到哪个数据库。 此 可选 属性接受最多 128 个字符的 字符串 值。 默认值为 空字符串。 |
| 集成安全性 |
集成安全属性指示 SQL 客户端通过安全支持提供程序接口(SSPI)使用 Windows 身份验证连接到 SQL Server。 此 可选 属性接受一个布尔值, 其表示形式可以是 true、false、yes 和 no。 默认值是 false。 如果此属性值为 true 或是,DRDA 服务将使用 Windows 身份验证连接到 SQL Server。 - 连接凭据派生自正在运行的 MsDrdaService.exe(从命令行运行时服务帐户或登录用户)。 - 当单独的关联应用程序参数被指定为一个值时,连接凭据来自企业单一服务 Sign-On。 有关详细信息,请参阅有关关联应用程序的主题。 如果此属性值为 false 或否,DRDA 服务将使用 SQL Server 身份验证连接到 SQL Server。 - 连接凭据派生自 ConnectionString 中的用户 ID 和密码参数。 - 当不存在用户 ID 和密码参数时,连接凭据派生自 DRDA 应用程序请求者数据客户端。 注意: 使用 Windows 发起的 Enterprise Single 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。 |
| 数据包大小 | 数据包大小属性定义 SQL 客户端用于与 SQL Server 实例通信的网络数据包的大小(以字节为单位)。 此 可选 属性接受 整数 值 512 到 32676。 默认值为 8192。 |
| 密码 | 当 SQL 客户端使用 SQL Server 身份验证时, Password 属性定义登录密码的值。 此 可选 属性接受最多 128 个字符的 字符串 值。 默认值为 空字符串。 |
| 池 | 池属性指示 SQL 客户端在 DRDA 服务关闭时将新创建的连接添加到池。 在下一次尝试打开同一连接时,将使用相同的连接字符串属性值从池中绘制该连接。 此 可选 属性可接受的 布尔 值包含 true(是)、false(否)、yes 和 no。 默认值是 false。 |
| 信任服务器证书 | TrustServerCertificate 指示 SQL 客户端在绕过证书链来验证信任时加密通道。 此 可选 属性接受值为 true、false、yes 和 no 的 布尔 值。 默认值是 false。 |
| 用户 ID | 当 SQL 客户端使用 SQL Server 身份验证时, 用户 ID 属性定义登录用户 ID 的值。 此 可选 属性接受最多 128 个字符的 字符串 值。 默认值为 空字符串。 |
| 工作站标识符 | 连接到 SQL Server 时 ,工作站 ID 属性定义工作站的名称。 此 可选 属性接受最多 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,表示在 CICS for z/OS 中运行时 DRDA AR 客户端程序事务标识符的名称。
存储过程调用超时
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)DRDA 应用程序请求程序客户端(如 IBM DB2 Connect JDBC 驱动程序)的兼容性。
安全
DRDA 服务处理入站 TCP/IP 网络连接的身份验证。 DRDA 服务支持可选的加密和单一登录功能,以提高安全性和性能。 MsDrdaService.exe.config 文件的 securityManager 元素包含用于管理绑定 DRDA 客户端连接的安全设置。 securityManager 类型是 Microsoft.HostIntegration.Drda.Server.SecurityManager,它负责处理入站 TCP/IP 网络连接的身份验证。
ESSO Host-Initiated 合作伙伴申请
hostInitiatedAffiliateApplication 属性定义 DRDA 服务应与 Microsoft Enterprise Single Sign-On 一起使用的关联应用程序名称,以便当 SQL 客户端使用 Windows 身份验证时,将绑定的 DRDA AR 客户端凭据映射到 Windows Active Directory 域用户。 此 可选 属性接受 字符串 值。 默认值为 空字符串,指示 DRDA 服务不使用主机启动的 ESSO。
注释
使用主机启动的 ESSO 时,必须在 SQL Server 连接字符串中指定 Integrated Security=true。
关联应用程序是表示系统或子系统的逻辑实体,例如主机、后端系统或 IBM DB2 数据库客户端。 请联系 SSO 管理员以获取 SSO 关联应用程序名称。
ESSO Windows-Initiated 合作伙伴申请程序
windowsInitiatedAffiliateApplication 属性定义 DRDA 服务应与 Microsoft Enterprise Single Sign-On 一起使用的关联应用程序名称,以便当 SQL 客户端使用 SQL Server 身份验证时,将 Windows Active Directory 域用户映射到绑定的 SQL 客户端凭据。 此 可选 属性接受 字符串 值。 默认值为 空字符串,指示 DRDA 服务不使用 Windows 发起的 ESSO。
(可选)指定 isRdbName 的值,以指示 DRDA 服务使用 ACCRDB(访问关系数据库)协议流上的内联 RDBNAM(关系数据库名称)作为 Windows-Initiated 关联应用程序名称。 定义 Windows 发起的 ESSO 关联应用程序时,必须创建第三个字段(“ConnectionString”)。 凭据映射必须包含在 ConnectionString 字段中的参数值对(初始目录=<SQL_Server_Database_Name>)。 凭据映射可能包含密码字段的占位符(MS$SAME)。
注释
使用 Windows 发起的 ESSO 时,必须在 SQL Server 连接字符串中指定 Integrated Security=true。
关联应用程序是表示系统或子系统的逻辑实体,例如主机、后端系统或 IBM DB2 数据库客户端。 请联系 SSO 管理员以获取 SSO 关联应用程序名称。
安全令牌超时
DRDA 服务将缓存从Microsoft企业单一 Sign-On 和映射身份验证域功能获取的安全令牌,并在配置的时间内使用集成安全支持提供程序接口(SSPI)连接到为 Windows 身份验证配置的 SQL Server 时使用该令牌。
securityTokenTimeout 属性指示 DRDA 服务器在一段时间内保留安全令牌,之后获取新的 Windows 客户端标识符(CID)。 此 可选 属性接受 持续时间 值。 默认值为 PT8H (时间段为 8 小时)。 持续时间值以 PnYnMnDTnHnMnS 的形式指定。
| 条目 | DESCRIPTION |
|---|---|
| P | 持续时间的时间段(必需) |
| 纽约 | 年数。 |
| 纳米 | 月数。 |
| nD | 天数。 |
| T | 时间节的开始(需要指定由小时、分钟或秒组成的持续时间)。 |
| nH | 小时数。 |
| 纳米 | 分钟数。 |
| S | 秒数。 |
以 XML 格式表示的时间持续时间。
映射身份验证
mappedAuthenticationDomain 属性指示 DRDA 服务将传入的 DRDA 客户端凭据(用户名和密码)映射到哪个 Microsoft Windows Active Directory 域,但仅在使用集成安全支持提供程序接口(SSPI)连接到配置为 Windows 身份验证的 SQL Server 时映射,而不适用于使用 Microsoft 企业单一登录的情况。 此 可选 属性接受 字符串 值。 默认值为 空字符串。
注释
映射身份验证域安全身份验证需要以下附加配置。
SQL Server 数据库连接
SQL Server 连接字符串中的集成安全性参数必须设置为 true 值。
MsDrdaService.exe.config 文件的数据库元素中的 hostInitiatedAffiliateApplication 属性必须设置为空字符串的值。 不能同时使用主机启动的 ESSO 和映射身份验证域的安全身份验证。
DRDA 服务帐户的 Windows 安全性
MsDrdaService.exe 必须在域用户帐户(域\用户)的上下文中运行。
服务帐户必须是 HIS 管理员和 HIS 运行时用户本地组的成员。
本地安全策略
服务帐户需要这些本地安全策略设置才能作为服务运行:
服务帐户需要以服务身份登录。
服务帐户需要具有“作为操作系统一部分运行”的权限。
服务帐户需要 Access Credential Manager 作为受信任的调用方。
服务帐户需要启用计算机和用户帐户以被信任用于委派。
DB2 for z/OS 连接数据库 (CDB)
| 表 | 列 | 价值 | DESCRIPTION |
|---|---|---|---|
| SYSIBM。IPNAMES | 安全退出 | P | 值“P”表示具有授权标识符的密码。 |
| SYSIBM。IPNAMES | 用户名 | O | 来自 SYSIBM.USERNAMES 表的值“O”表示出站标识符。 |
| SYSIBM。USERNAMES | 类型 | O | 值“O”表示出站转换。 |
| SYSIBM。USERNAMES | AUTHID | <字符串> | 字符串值为 Windows Active Directory 域用户名。 |
| SYSIBM。USERNAMES | 密码 | <字符串> | 字符串值是 Windows Active Directory 域密码。 |
支持映射身份验证域安全身份验证所需的 DB2 for z/OS 连接数据库设置。
身份验证查找超时
authenticationLookupTimeout 属性指示 DRDA 服务器在失败之前等待安全身份验证查找请求的持续时间。 此 可选 属性接受 持续时间 值。 默认值为 PT30S (时间段为 30 秒)。 持续时间值以 PnYnMnDTnHnMnS 的形式指定。
| 条目 | DESCRIPTION |
|---|---|
| P | 持续时间的时间段(必需) |
| 纽约 | 年数。 |
| 纳米 | 月数。 |
| nD | 天数。 |
| T | 时间节的开始(需要指定由小时、分钟或秒组成的持续时间)。 |
| nH | 小时数。 |
| 纳米 | 分钟数。 |
| S | 秒数。 |
以 XML 格式表示的时间持续时间。
身份验证查找重试
authenticationLookupRetries 属性指示 DRDA 服务器在失败之前尝试安全身份验证查找请求的次数。 此 可选 属性接受 整数 值。 默认值为 3 次重试。
SET 语句
DRDA 服务通过适用于 SQL Server 和基础 SQL 客户端的 Microsoft ADO.NET 框架提供程序连接到 SQL Server。 MsDrdaService.exe.config 文件的 sqlSet 元素包含了 DRDA Server 为每个 SQL Server 连接颁发的 SET 语句,用以更改当前会话中特定信息的处理。
SET ARITHABORT
该 arithAbort 属性指示 DRDA 服务器在连接时发出 SET ARITHABORT 语句,以请求 SQL Server 在查询执行期间发生溢出或除零错误时终止查询。 此属性 optional 接受值 string 。 默认值为 ON。