IBM DB2“管理员”没有执行“选择”的权限

时间:2013-05-28 07:33:26

标签: windows db2 ibm-data-studio

我一直在测试我帮助开发的软件,它位于32位应用程序服务器上。它是连接到使用IBM DB2 v10.1的64位数据库服务器。

我是设置DB2的人,但我很确定它已被修改过;我无法再使用用户名/密码进行连接:db2admin / db2admin。

相反,我必须使用Administrator / p @ ssw0rd。我不记得自己创建该用户 - 它是计算机本身的本地帐户 - 但是从我的ODBC测试中,它可以连接到数据库。

然而,它似乎没有任何特权。我试图看看这个'用户'在哪里使用Data Studio 3.2.0失败了,虽然根据我对DB2的经验(缺乏),这并不奇怪。

我的担忧有两方面:

  • 查找“管理员”所在的位置。
  • 并修改其权限以复制db2admin,即iirc,它是数据库管理员。

我在网上研究这个问题的尝试遇到了失败 - 要么所谓的解决方案不起作用,要么我太难理解它是否有效(它没有)。

我尝试了以下内容:

  • 直接通过Data Studio 3.2.0修改数据库;右键单击数据库,选择Manage Privileges,然后检查我能找到的所有内容 - 请注意我没有找到任何'Administrator',只是'PUBLIC','DB2ADMIN','SYSDEBUG'。此外,它似乎没有保存。
  • '从SYSCAT.DBAUTH中选择*,其中GRANTEE ='Administrator';我想这会产生很长的表格列表。不知道如何处理它们,但如果我用'db2admin'替换'Administrator',我会得到完全相同的结果。
  • 使用Data Studio创建名为“Administrator”的新用户;

拜托,我想对此有所了解; DB2是一个非常令人沮丧的数据库。我正在使用DB2 v10.1,Data Studio 3.2.0和Windows Server 2008。

3 个答案:

答案 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并不令人沮丧!”