2012-06-06 50 views
3

在Java应用程序中,我使用管理权限在DB2中创建了2个数据库。现在使用应用程序,希望通过LAN访问相同的数据库,但需要将数据库特权授予其他(在同一个域中)域用户,以便他们可以像最终用户一样访问相同的数据库。如何将DB2中的数据库特权授予其他域用户

我试过DB2 GRANT命令,但它不允许其他人访问这些数据库,但是如果他们使用与管理员相同的user/pwd,那么DB2允许他们访问数据库。但是,知道管理员用户/密码可能是安全问题。

有没有办法做到这一点在命令提示符即DB2CMD

GRANT CONNECT,ACCESSCTRL,DATAACCESS,DBADM,SECADM ON DATABASE TO USER Kishore 

此命令不会解决问题。

在此先感谢。

我做了@Ian Bjorhovde的建议。现在,DB2服务以Domain \ Admin身份运行,并且GRANT命令已成功执行,但其他Domain用户无法连接到由Admin创建的DB(具有自己的身份验证)。该代码用于

DriverManager.getConnection("jdbc:db2://SERVERNAME:50000/TESTDB", UserName, PassWord); 

中建立了连接,但将引发SQL异常(SQLCODE = -204),而击发任何SELECT查询甚至上提供的用户名域\用户名。

回答

2

要根据域进行身份验证,DB2服务(实例)必须使用域帐户运行 - 无法使用本地计算机上定义的帐户启动。您可以停止实例,然后从Windows服务面板更改DB2服务以开始使用域ID。

确保此域ID具有足够的权限,如documented here

+0

谢谢@Ian。是的,DB2服务正在我的机器上使用本地帐户运行。如果我将它们作为域帐户启动,那么如何授予他人访问权限呢? – Kishore

+0

只要实例使用域ID运行,它就能够根据域对用户进行身份验证。您已经发布了GRANT声明,所以您应该全部设置。 –

+0

请查看我的问题的更新 – Kishore

相关问题