Java 不指定用户名和密码的DB2连接
我已经安装了Java 不指定用户名和密码的DB2连接,java,database,db2,Java,Database,Db2,我已经安装了DB2Express C 9.7.4edition 我正在使用JAVA语言建立DB2连接 但是我仍然需要提供我的windows登录帐户的用户名和密码来建立连接 有必要提一下吗 是否有任何方法可以在不指定用户名/密码的情况下建立连接,因为在安装过程中我们跳过了该页面 提前感谢…您在屏幕截图中提到的选项仅用于指示实例和其他服务的启动方式。这并不意味着DB2中使用的身份验证机制 为了允许未知用户连接到数据库,您必须向公共组授予“连接”。通过这样做,任何用户都可以连接到数据库,而无需提供凭据
DB2Express C 9.7.4
edition
我正在使用JAVA语言
建立DB2连接
但是我仍然需要提供我的windows登录帐户的用户名和密码来建立连接
有必要提一下吗
是否有任何方法可以在不指定用户名/密码的情况下建立连接,因为在安装过程中我们跳过了该页面
提前感谢…您在屏幕截图中提到的选项仅用于指示实例和其他服务的启动方式。这并不意味着DB2中使用的身份验证机制
为了允许未知用户连接到数据库,您必须向公共组授予“连接”。通过这样做,任何用户都可以连接到数据库,而无需提供凭据
db2 GRANT CONNECT ON DATABASE TO PUBLIC
有关更多信息:
您在屏幕截图中提到的选项只是指示实例和其他服务的启动方式。这并不意味着DB2中使用的身份验证机制
为了允许未知用户连接到数据库,您必须向公共组授予“连接”。通过这样做,任何用户都可以连接到数据库,而无需提供凭据
db2 GRANT CONNECT ON DATABASE TO PUBLIC
有关更多信息:
当应用程序与数据库服务器在同一台机器上运行时,DB2会假定启动应用程序的用户ID已经过操作系统的身份验证,因此不需要额外的身份验证。这称为IMPICT身份验证
因此,在不更改默认DB2数据库配置的情况下,如果满足以下条件,则可以执行此操作:
java应用程序必须与DB2数据库在同一台机器上运行
您的应用程序必须使用JDBCType2连接(JDBCURL应该类似于JDBC:db2:database
——而不是jdbc://localhost:50000/database
)
执行Java应用程序的用户ID有权连接到DB2数据库、查询适当的表等
允许对在数据库服务器以外的计算机上运行的应用程序进行隐式身份验证是可能的,但这需要设置受信任的上下文或打开一个大的安全漏洞(更改身份验证数据库配置参数)。当应用程序与数据库服务器在同一台计算机上运行时,DB2将假定启动应用程序的用户ID已经通过操作系统的身份验证,因此不需要额外的身份验证。这称为IMPICT身份验证
因此,在不更改默认DB2数据库配置的情况下,如果满足以下条件,则可以执行此操作:
java应用程序必须与DB2数据库在同一台机器上运行
您的应用程序必须使用JDBCType2连接(JDBCURL应该类似于JDBC:db2:database
——而不是jdbc://localhost:50000/database
)
执行Java应用程序的用户ID有权连接到DB2数据库、查询适当的表等
允许对运行在数据库服务器以外的计算机上的应用程序进行隐式身份验证是可能的,但这需要设置受信任的上下文或打开一个大的安全漏洞(更改身份验证
数据库配置参数).我甚至不知道是否可以设置数据库来接受匿名连接。你为什么不设置一个db帐户,使其具有所需的权限?通常是这样做的。请不要允许未经身份验证的连接到您的数据库。你只是要求某人去获取里面的信息……我甚至不知道是否有可能建立一个数据库来接受匿名连接。你为什么不设置一个db帐户,使其具有所需的权限?通常是这样做的。请不要允许未经身份验证的连接到您的数据库。你只是要求某人去获取里面的信息……请注意,授予公众访问权通常是一个非常糟糕的主意,因为这更容易导致数据泄露。如果你经营一家公司,你可能会被认为违反了PCI(或当地同等标准)。这个答案是不正确的。身份验证(验证用户是谁)与授权无关(用户是否有权连接到数据库、从表中查询等)。OP询问如何在java应用程序中使用隐式身份验证。请注意,授予公众访问权通常是一个非常糟糕的主意,因为这更容易导致数据泄露。如果你经营一家公司,你可能会被认为违反了PCI(或当地同等标准)。这个答案是不正确的。身份验证(验证用户是谁)与授权无关(用户是否有权连接到数据库、从表中查询等)。OP询问如何在java应用程序中使用隐式身份验证。