2011-11-28 119 views
0

我已经安装了DB2 Express C 9.7.4版本。没有指定用户名和密码的DB2连接

我正在使用JAVA language来建立DB2 Connection

但我必须仍然提供user name and password of my windows Login帐户建立连接...

是否有必要提吗?

有没有什么方法可以建立连接,而不需要指定用户名/密码,因为在安装过程中我们跳过了页面。

在此先感谢...

+0

我甚至不知道是否可以设置一个数据库接受匿名连接。你为什么不建立一个数据库账户,并拥有它所需要的权限?这就是通常的做法。 – bdares

+0

请不要允许未经身份验证的连接到您的数据库。你只是要求有人去寻找内部信息...... –

回答

3

当应用程序在同一台计算机的数据库服务器上运行时,DB2将作一个假设,即启动应用程序的用户ID已经由操作系统认证 - 所以不需要额外的认证。这被称为impicit认证

所以,不需要更改默认的DB2数据库配置,你可以做到这一点,如果满足以下条件:

  1. 的Java应用程序必须在同一台机器上运行的DB2数据库

  2. 您的应用程序必须使用JDBC类型2连接(JDBC URL应该看起来像jdbc:db2:database - 不是jdbc://localhost:50000/database)。

  3. 执行Java应用程序的用户标识具有权限连接到DB2数据库中查询相应的表等

它可以允许在比其他数据库的计算机上运行的应用程序隐式认证服务器,但是这种请求会设置可信的上下文或者打开一个很大的安全漏洞(更改数据库配置参数AUTHENTICATION)。

0

你在截图提的是只是为了表明实例和其他服务已启动道路的选择。它并不意味着DB2中使用的认证机制。

为了允许未知用户连接到数据库,您必须向公共组授予“连接”权限。通过这样做,任何用户都可以连接到数据库,并且不需要提供凭证。

db2 GRANT CONNECT ON DATABASE TO PUBLIC 

欲了解更多信息: http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0050616.html

+1

指出,授予公众访问权限通常是一个非常糟糕的主意,因为这更容易导致数据泄露。如果您经营企业,您可能会被视为违反PCI(或本地等效)。 –

+0

这个答案是不正确的。身份验证(验证用户是她自称的用户)与授权无关(无论用户是否有权连接到数据库,查询表等)。 OP询问如何使用java应用程序进行隐式认证。 –