如何在Windows上使用DB2 9.7向本地db2admin授予所有特权?


10

作为开发人员,我有一台装有Windows XP Professional Edition Service Pack 3的笔记本电脑。

我已经下载并安装了Express-C版的IBM DB2 UDB 9.7修订包4。

我有一个名为db2admin的本地Windows帐户,我将用作本地数据库管理员来进行DB2的本地安装(仅供开发人员使用)。

运行命令窗口时,我可以运行以下命令而不会出现问题:

db2 attach to db2 user db2admin using xxxxxxxxxx

这使我可以附加到名为DB2的实例。

我可以运行我的创建数据库命令。

然后,我尝试连接到数据库以授予DB2中我的db2admin帐户的所有特权。

db2 CONNECT TO MYDB;
SET SCHEMA DB2ADMIN;
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT,SECADM ON DATABASE TO USER DB2ADMIN;
CONNECT RESET;

但是,当我运行该命令时,DB2告诉我我的实际Windows用户帐户(synprgcma)没有权限向用户db2admin授予权限。

因此,如果我将第二个脚本更改为以下内容:

db2 CONNECT TO MYDB USER db2admin USING xxxxxxxx;
SET SCHEMA DB2ADMIN;
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT,SECADM ON DATABASE TO USER DB2ADMIN;
CONNECT RESET;

然后,DB2告诉我db2admin无法撤消或向自身授予权限(实际上,它告诉我id无法撤消或向自身授予权限)。

所以我很沮丧。我以前安装的DB2(9.5版)没有这个问题,我不记得我使用的是哪个修订包。

如何授予本地管理员帐户必要的权限?我相信我需要此命令来运行下一步需要执行的绑定命令:

db2 CONNECT TO MYDB;
db2 bind @db2cli.lst blocking all grant public sqlerror continue CLIPKG 20;
db2 CONNECT RESET;

任何帮助,将不胜感激。

编辑:我发现以下一些与此相关的链接。仍然不确定如何使它正常工作,但至少我已经找到了一些文档。

Answers:


5

根据以上我编辑问题的最后链接,我找到了答案。我无法调整系统帐户,因为我们从LDAP登录到我们的系统,并且无法控制组,而不能控制其他组。

所以我做了以下事情:

  1. 打开了DB2 GUI(最简单的方法是这样做)。
  2. 以db2admin身份连接到所需的数据库。
  3. 以用户身份将我的登录名添加到数据库中。
  4. 将所有权限授予该ID(我的ID)。
  5. 断开。
  6. 连接到所需的数据库作为我的ID。
  7. 将所有权限授予db2admin。
  8. 断开。

瞧!现在,以所有权限登录db2admin。

编辑:我将离开上面的内容,因为它可以帮助我学习如何在DB2中做一些有趣的事情。但是,我了解到,具有DATAACCESS和ACCESSCTRL权限的DBADM / SECADM被授予实例所有者(在我的情况下为db2admin id)具有与数据库交互所需的所有权限。实际上,我本可以在脚本中注释掉上面的那些授权行。这些是从脚本中遗留下来的,该脚本与较旧版本的DB2冲突。我还发现从数据库B还原到数据库A后是否需要拥有实例所有者DBADM,最简单的方法就是将注册表变量DB2_RESTORE_GRANT_ADMIN_AUTHORITY设置为YES(在Fix Pack 2和更高版本中可用)。然后,我不必尝试授予实例所有者DBADM。它会自动授予还原到实例中的任何数据库。


不确定DB2 GUI的含义。我们可以尝试使用命令行版本吗?
太阳

@ sunk818-即使对于命令行,步骤也将相同。从9.7版开始,它与DB2在安全性方面的功能有关。
克里斯·奥尔德里奇

我关心的是必须具有SYSADM访问权限才能创建数据库...也许我访问了错误的问题。;)
太阳

SYSADM始终具有创建数据库的能力。SYSCTRL也是如此。
克里斯·奥尔德里奇
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.