不指定用户名和密码的DB2连接(.NET)

本文关键字:连接 DB2 NET 密码 用户 | 更新日期: 2023-09-27 18:01:06

我已经安装了DB2,并在同一台服务器上尝试在PowerShell中建立连接。然而,我似乎必须在连接字符串中以纯文本形式提供用户名和密码。由于我正试图在一个安全的系统上创建一个计划任务,所以这不是一个理想的情况。

我已经检查了旧的备用,http://connectionstrings.com,但我找不到任何不明确包含用户名和密码的字符串。有这样的绳子吗?也许使用其他提供商?下面是我正在使用的代码。

$cn=new-object System.Data.OleDb.OleDbConnection("Provider=IBMDADB2;Database=TLMA;HostName=xxx;Protocol=TCPIP;Port=50000;Uid=xxx;Pwd=xxx;CurrentSchema=DB2")

这是我得到的错误:

使用"1"个参数调用"Fill"时出现异常:"SQL30082N安全处理失败,原因为"3"("PASSWORD MISSING"(。SQLSTATE=08001">

我对如何解决这个问题持开放态度。

更新:我发现该实例具有身份验证设置。它当前设置为SERVER。

一个看起来像这样的连接字符串:

$cn=new-object System.Data.OleDb.OleDbConnection("Provider=IBMDADB2;Database=TLMA;HostName=xxx;Protocol=TCPIP;Port=50000;Authentication=KERBEROS;CurrentSchema=DB2")

可能有效(我不确定(,但似乎需要将Authentication设置更改为KERBEROS。我不知道这是否会破坏当前使用uid/pwd模型的应用程序。

不指定用户名和密码的DB2连接(.NET)

当我加载配置文件时,我可以从PowerShell调用db2命令,并且连接将已经通过身份验证的用户作为凭据:

set-item -path env:DB2CLP -value "**$$**"
db2 connect to mydb

但是,我不知道如何将这些连接用作资源。

看看这个工作示例:https://github.com/angoca/log4db2/blob/master/src/main/scripts/install.ps1

此外,为了信任客户端,请尝试更改DB2中的安全机制。