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

时间:2014-05-01 20:18:46

标签: c# .net powershell db2

我已经安装了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")

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

1 个答案:

答案 0 :(得分:0)

我可以在加载配置文件时从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中的安全机制,以便信任客户端。