我有一台装有 OS 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
根据我对问题的编辑中的最后一个链接,我找到了答案。我无法调整系统帐户,因为我们的系统登录来自 LDAP,我无法控制组和其他什么。
所以我做了以下事情:
瞧!db2admin 现在以所有权限登录。