Sql server 使用Windows凭据连接到DB2

Sql server 使用Windows凭据连接到DB2,sql-server,vba,db2,ado,Sql Server,Vba,Db2,Ado,我正在从事一个VBA项目,在这个项目中,我需要连接到SQL和DB2数据库。我在这两种情况下都使用ADODB连接。SQL工作正常,并且正在使用Windows凭据。我可以通过传递用户名和密码使DB2连接工作,但不使用Windows凭据(它们是相同的)。有关示例,请参见连接字符串: 此SQL连接字符串工作正常: 只要我在open方法中传递密码,这个DB2连接字符串也可以工作: 我想在DB2上使用SQL方法,所以我尝试了这个方法,它不起作用: 甚至可以连接到DB2而不传递用户名和密码吗?为了连接,我必须

我正在从事一个VBA项目,在这个项目中,我需要连接到SQL和DB2数据库。我在这两种情况下都使用ADODB连接。SQL工作正常,并且正在使用Windows凭据。我可以通过传递用户名和密码使DB2连接工作,但不使用Windows凭据(它们是相同的)。有关示例,请参见连接字符串:

此SQL连接字符串工作正常:

只要我在open方法中传递密码,这个DB2连接字符串也可以工作:

我想在DB2上使用SQL方法,所以我尝试了这个方法,它不起作用:


甚至可以连接到DB2而不传递用户名和密码吗?为了连接,我必须提示用户输入这些吗?

我假设我们讨论的是DB2 for LUW

一种简单的方法是启用客户端身份验证。在DB2服务器上设置以下实例配置参数:

update dbm cfg using authentication client trust_clntauth client trust_allclnts yes
您需要重新启动实例以使更改生效(
db2stop
/
db2start

在客户端目录上,使用客户端身份验证对相关数据库执行以下操作:

uncatalog db yourdb
catalog db yourdb at node whatever authentication client
如果当前对数据库进行编目时没有明确的服务器端身份验证选项,则最后两个步骤(
uncatalog
/
catalog
)可能没有必要

请注意,这样的配置不是很安全,因为它允许任何Windows用户登录到Windows后无需身份验证即可连接到数据库(实际上是DB2服务器上的任何数据库)。您可能希望通过撤销公共伪组的所有授权,并仅向应用程序登录ID授予特定权限,从而加强数据库的安全性


或者,您可以启用Kerberos身份验证,但这是一个更复杂的过程,如。

感谢您的回答。我应该提到,我实际上没有数据库的管理员权限(这是一项工作),因此我无法进行这些更改。似乎在用户连接到DB2数据库时,我必须提示用户输入密码。
objConnection.connectionString = "Provider=IBMDADB2.1; Integrated Security=SSPI; Persist Security Info=False; Data Source=DB_" & strDatabase
update dbm cfg using authentication client trust_clntauth client trust_allclnts yes
uncatalog db yourdb
catalog db yourdb at node whatever authentication client