作为开发人员,我有一台装有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;
任何帮助,将不胜感激。
编辑:我发现以下一些与此相关的链接。仍然不确定如何使它正常工作,但至少我已经找到了一些文档。
- http://www.db2teamblog.com/2009/06/whats-new-in-db2-97.html
- http://lpetr.org/blog/archives/simplify-the-db2-9-7-security-model
- http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.sql.ref.doc%2Fdoc%2Fr0000958.html
- http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14288459
- http://publib.boulder.ibm.com/infocenter/tivihelp/v4r1/index.jsp?topic=%2Fcom.ibm.tpc_V422.doc%2Ffqz0_t_preparing_to_install_db2_windows.html
- http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.sec.doc%2Fdoc%2Fc0055206.html
- http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.sec.doc%2Fdoc%2Fc0005479.html