配置 SQL Server 连接

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 数据提供程序SQL Server连接对象时使用。 此 必需 属性接受 字符串 值。 默认值为 Data Source=localhost;集成安全性=true;MultipleActiveResultSets=true

描述
应用程序名称 应用程序名称属性指示 SQL 客户端与连接关联的应用程序的名称。 此 可选 属性接受 字符串 值。 默认值为空字符串。
连接超时值 Connect Timeout 属性指示 SQL 客户端在终止尝试并生成错误之前等待连接到服务器的时长 (秒) 。

可选 属性接受 整数 值。 有效值大于或等于 0 且小于或等于 2147483647。默认值为 15 秒。
数据源 数据源属性定义使用 TCP/IP 或命名管道连接到SQL Server实例的名称或网络地址。 此 必需 属性接受 字符串 值。 默认值为空字符串。

对于 TCP/IP,格式化值以“tcp:”前缀开头,后跟 IPv4 或 IPv6 格式的 TCP/IP 别名或地址,后跟反斜杠分隔SQL Server实例名称或逗号分隔的 TCP/IP 端口号。

- tcp:<host name>\<instance name>
- tcp:<主机名>,<TCP/IP 端口号>

对于命名管道,格式化值以“np:”前缀开头,后跟主机名和命名管道名称。

- np:\\<host name>\pipe\pipe\<pipe name>
加密 Encrypt 属性指示 SQL 客户端使用安全套接字层 (SSL) 加密在 SQL 客户端与 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 或 yes 时,DRDA 服务将使用 Windows 身份验证连接到SQL Server。

- 从命令行) 运行时,连接凭据派生自正在运行 MsDrdaService.exe (服务帐户或登录用户。
- 使用值指定单独的关联应用程序参数时,连接凭据派生自企业单一 Sign-On 服务。 有关详细信息,请参阅有关关联应用程序的主题。

如果此属性值为 false 或否,则 DRDA 服务将使用SQL Server身份验证连接到SQL Server。

- 连接凭据派生自 ConnectionString 中的 User ID 和 Password 参数。
- 当用户 ID 和 Password 参数不存在时,连接凭据派生自 DRDA 应用程序请求者数据客户端。 注意: 使用 Windows 发起的企业单一 Sign-On 和映射身份验证域功能时,必须指定 false。
Max Pool Size “最大池大小”属性定义 SQL 客户端应在连接池中保留的最大连接数。 此 可选 属性接受 整数 值。 默认值为 100。
MultipleActiveResultSets MultipleActiveResultSets 属性指示SQL Server维护多个维护多个活动的结果集 (MARS) ,包括打开的服务器游标对象。 此 必需 属性接受 布尔值 true 、false、yes 和 no。 默认值为 true注意: DRDA 服务要求 MARS 支持由静态 SQL CURSOR WITH HOLD 语句创建的服务器游标。
Network Library 网络库属性指示 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 Pooling 属性指示 SQL 客户端在由 DRDA 服务关闭时将新创建的连接添加到池中。 下一次尝试打开具有相同连接字符串属性值的相同连接时,将从池中提取该连接。 此 可选 属性接受 布尔值 true 、false、yes 和 no。 默认值是 false秒。
TrustServerCertificate TrustServerCertificate 指示 SQL 客户端在绕过证书链以验证信任时加密通道。 此 可选 属性接受 布尔值 true 、false、yes 和 no。 默认值是 false秒。
用户 ID 当 SQL 客户端使用 SQL Server 身份验证时,User ID 属性定义登录用户 ID 的值。 此 可选 属性接受最多 128 个字符的 字符串 值。 默认值为空字符串。
工作站 ID 工作站 ID 属性定义连接到SQL Server时工作站的名称。 此 可选 属性接受最多 128 个字符的 字符串 值。 默认值为空字符串。

DRDA 服务支持这些 SqlClient 连接字符串参数名称和值。

有关详细信息,请参阅 https://msdn.microsoft.com/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

客户端应用程序名称

clientApplicationName 属性指示 DRDA 服务如何设置 SQL 客户端应用程序名称连接属性。 此可选属性接受字符串值。 默认值为 externalName,它是 DRDA 外部名称 (EXTNAM) 表示 DRDA AR 客户端程序作业、任务或进程的名称。 (可选)指定 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 属性定义关联应用程序名称,当 SQL 客户端使用 Windows 身份验证时,DRDA 服务应与 Microsoft 企业单一 Sign-On 一起使用,以将绑定的 DRDA AR 客户端凭据映射到 Windows Active Directory 域用户。 此 可选 属性接受 字符串 值。 默认值为 空字符串,指示 DRDA 服务不使用主机启动的 ESSO。

注意

使用主机启动的 ESSO 时,必须在SQL Server 连接字符串中指定 Integrated Security=true。

关联应用程序是表示系统或子系统(例如主机、后端系统或 IBM DB2 数据库客户端)的逻辑实体。 请与 SSO 管理员联系获得 SSO 关联应用程序名称。

ESSO Windows-Initiated 关联应用程序

windowsInitiatedAffiliateApplication 属性定义关联应用程序名称,当 SQL 客户端使用SQL Server身份验证时,DRDA 服务应与 Microsoft 企业单一 Sign-On 一起使用,以便将 Windows Active Directory 域用户映射到绑定的 SQL 客户端凭据。 此 可选 属性接受 字符串 值。 默认值为 空字符串,指示 DRDA 服务不使用 Windows 启动的 ESSO。

(可选)指定 isRdbName 的值以指示 DRDA 服务使用 ACCRDB (Access 关系数据库) 协议流上的传入 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 企业单一 Sign-On 和映射身份验证域功能获取的安全令牌,在连接到使用集成安全支持提供程序接口 (SSPI) 为Windows 身份验证配置的SQL Server时,将使用这些令牌。

securityTokenTimeout 属性指示 DRDA 服务器将安全令牌保留一段时间,之后获取新的 Windows 客户端标识符 (CID) 。 此 可选 属性接受 持续时间 值。 默认值为 PT8H , (时间段为 8 小时) 。 持续时间值以 PnYnMnDTnHnMnS 格式指定。

说明
P 所需持续时间 ()
纽约 年份数。
纳米 月份数。
nD 天数。
T 指定由小时、分钟或秒组成的持续时间) 需要时间部分 (开始时间部分。
Nh 小时数。
纳米 分钟数。
S 秒数。

以 XML 格式表示的持续时间。

映射身份验证

mappedAuthenticationDomain 属性指示 DRDA 服务在连接到使用集成安全支持提供程序接口 (SSPI) 为Windows 身份验证配置的SQL Server时,将绑定的 DRDA 客户端凭据 (用户名和密码) 映射到哪个 Microsoft Windows Active Directory 域,但在使用 Microsoft 企业单一登录时则不映射。 此可选属性接受字符串值。 默认值为空字符串。

注意

映射身份验证域安全身份验证需要以下附加配置。

SQL Server 数据库连接

SQL Server 连接字符串中的 Integrated Security 参数必须设置为 true 的值。

MsDrdaService.exe.config 文件的数据库元素中的 hostInitiatedAffiliateApplication 属性必须设置为空字符串值。 不能同时使用主机启动的 ESSO 和映射身份验证域安全身份验证。

DRDA 服务帐户的Windows 安全中心

MsDrdaService.exe 必须在域用户帐户 (域\用户) 的上下文中运行。

服务帐户必须是 HIS 管理员本地组和 HIS 运行时用户本地组的成员。

本地安全策略

服务帐户需要以下本地安全策略设置作为服务运行:

  • 服务帐户需要“作为服务登录”。

  • 服务帐户需要“用作操作系统的一部分”。

  • 服务帐户需要“以受信任的调用方身份访问凭据管理器”。

  • 服务帐户需要“信任计算机和用户帐户可以执行委派”。

DB2 for z/OS 连接数据库 (CDB)
说明
SYSIBM。IPNAMES SECURITY_OUT P 值“P”表示具有授权标识符的密码。
SYSIBM。IPNAMES 用户名 O 值“O”表示来自 SYSIBM 的出站标识符。USERNAMES 表。
SYSIBM。用户名 TYPE O 值“O”表示出站转换。
SYSIBM。用户名 AUTHID <字符串> 字符串值为 Windows Active Directory 域用户名。
SYSIBM。用户名 PASSWORD <字符串> 字符串值是 Windows Active Directory 域密码。

支持映射身份验证域安全身份验证所需的 DB2 for z/OS 连接数据库设置。

身份验证查找超时

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 服务器将为每个SQL Server连接发出的 SET 语句,以便更改特定信息的当前会话处理。

SET ARITHABORT

属性arithAbort指示 DRDA 服务器在连接时发出 SET ARITHABORT 语句,以请求SQL Server在查询执行期间发生溢出或被零除错误时终止查询。 此属性 optional 接受值 string 。 默认值为 ON。