我已经安装了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模型的应用程序。
答案 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中的安全机制,以便信任客户端。