我一直在测试我帮助开发的软件,它位于32位应用程序服务器上。它是连接到使用IBM DB2 v10.1的64位数据库服务器。
我是设置DB2的人,但我很确定它已被修改过;我无法再使用用户名/密码进行连接:db2admin / db2admin。
相反,我必须使用Administrator / p @ ssw0rd。我不记得自己创建该用户 - 它是计算机本身的本地帐户 - 但是从我的ODBC测试中,它可以连接到数据库。
然而,它似乎没有任何特权。我试图看看这个'用户'在哪里使用Data Studio 3.2.0失败了,虽然根据我对DB2的经验(缺乏),这并不奇怪。
我的担忧有两方面:
我在网上研究这个问题的尝试遇到了失败 - 要么所谓的解决方案不起作用,要么我太难理解它是否有效(它没有)。
我尝试了以下内容:
拜托,我想对此有所了解; DB2是一个非常令人沮丧的数据库。我正在使用DB2 v10.1,Data Studio 3.2.0和Windows Server 2008。
答案 0 :(得分:4)
DB2身份验证依赖于外部机制,例如操作系统安全性或ldap。如果你的情况,它似乎是Windows安全。
DB2授权是内部的,因此任何授权都在数据库中,但有一些例外。
DB2中有几个权限,一些在实例级别,另一些在数据库级别。在数据库级别,您可以通过查询目录在数据库中找到它们,并且可以将它们分配给用户或组。 在实例级别,其他权限与OS组(外部机制)相关联
数据库中的最高权限是DBADM,实例级别的最高权限是SYSADM。 SYSAMD关联组中的每个用户都会在实例内的所有数据库中自动成为DBADM。
嗯,这只是DB2安全性的简短解释。这意味着您'管理员'用户具有'连接'权限(有时'连接'权限是公共的,这意味着,任何用户都可以连接),但它没有任何其他权限,也没有权限。
最后,在Windows环境中,还有另一个安全层,它将用户关联到两组DB2ADMNS和DB2USERS。有关详情,请查看此链接http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.admin.sec.doc/doc/c0023391.html
答案 1 :(得分:1)
好吧,我解决了它,但仍有待观察为什么会发生这种情况;
创建用户'Administrator'后,我通过检查所有内容来修改权限。它似乎有效。
答案 2 :(得分:1)
你必须在TABLE上向用户授予一个SELECT。
GRANT SELECT,INSERT TO mytable TO USER peter
“db2并不令人沮丧!”