金仓数据库KingbaseES客户端编程接口指南-ado.net(6. 安全和加密)

本文详细介绍了KingbaseES的登录方式,包括通过用户名和密码登录以及集成安全性(GSS/SSPI/Kerberos)的实现。重点讨论了集成安全性,它允许通过操作系统进行身份验证,避免直接处理密码。此外,还阐述了如何启用SSL/TLS加密以确保连接的安全性,包括证书验证和客户端证书的提供。
摘要由CSDN通过智能技术生成

6. 安全和加密

6.1. 登录

登录 KingbaseES 的最简单方法是在连接字符串中指定 Username 和 Password 。 Password 根据 KingbaseES 的配置方式(在 .conf 文件中), Kdbndp 将以MD5或明文形式发送密码(不推荐)。

如果未指定 Password 且 KingbaseES 配置为请求密码(普通或MD5),Kdbndp 将查找标准 KingbaseES 密码文件。如果您指定 Passfile 连接字符串参数,将使用它指定的文件。如果未定义该参数,Kdbndp 将在从 KESPASSFILE 环境变量获取的路径下查找。 如果未定义环境变量,Kdbndp将回退到与系统相关的默认目录。

KdbndpConnection 也可以配置一个 ProvidePasswordCallback 。这将在打开新的数据库连接以在代码中生成密码时执行。可以将其配置为使用基于访问凭证生成的短期令牌。 未指定 ProvidePasswordCallback 密码和 Passfile 连接字符串参数时执行委托。

6.2. 集成安全性(GSS/SSPI/Kerberos)

以用户名和密码登录的方式并不推荐,因为这必须要让应用程序有权访问您的密码。另一种身份验证的方式是 “集成安全”,它使用 GSS 或 SSPI 来通过 Kerberos验证。这种方法的优点是,通过已经打开的登录会话将身份验证移交给操作系统。应用程序永远不需要处理密码。

正确配置KingbaseES之后,只需在连接字符串中包含 Intefrated Sercurity=true 并且删除密码参数,但是 Kdbndp 仍然需要向 KingbaseES 发送用户名。 如果在连接字符串中指定了 Username 参数, Kdbndp 会正常发送。如果省略了该参数,Kdbndp 将尝试检测系统用户名,包括 Kerberos域。 默认情况下,KingbaseES 期望您的 Kerberos 域以您的用户名发送;您可以通过在连接字符串中设置 Include Realm 为true来让 Kdbndp 检测领域。 或者,您可以在 KingbaseES 的kdb.conf 条目中禁用添加 include_realm=0 来将其脱离领域,这样就可以自己指定发送到 KingbaseES 的用户名。

6.3. 加密(SSL/TLS)

默认情况下 KingbaseES 连接时未加密的,您可以根据需要打开 SSL/TLS 加密。

  1. 首先,需要设置 KingbaseES 以接收 SSL/TLS 连接。

  2. 完成后,在连接字符串中指定 "SSL Mode",将其设置为 Require (如果服务器没有设置加密,连接将失败),或者 Prefer (如果服务器设置了加密,则使用加密,否则会回退到未加密状态)。

默认情况下,Kdbndp将验证您的服务器的证书是否有效。如果您使用的是自签名证书,验证将会失败。您可以通过在连接字符串中指定 Trust Server Certificate=true 来指示 Kdbndp 忽略验证。为了精确的控制服务器的证书是如何验证的,您可以再 KdbndpConnection 上注册 UserCertificateValidationCallback (和在 .NET上的SSLStream一样)。

您还可以通过在 KdbndpConnection 上注册 ProvideClientCertificatesCallback 来让Kdbndp向服务器提供客户端证书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值