AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 8127
Accepted
Chris Aldrich
Chris Aldrich
Asked: 2011-11-19 13:04:40 +0800 CST2011-11-19 13:04:40 +0800 CST 2011-11-19 13:04:40 +0800 CST

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

  • 772

我有一台装有 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
db2 windows
  • 1 1 个回答
  • 72559 Views

1 个回答

  • Voted
  1. Best Answer
    Chris Aldrich
    2011-11-29T06:05:05+08:002011-11-29T06:05:05+08:00

    根据我对问题的编辑中的最后一个链接,我找到了答案。我无法调整系统帐户,因为我们的系统登录来自 LDAP,我无法控制组和其他什么。

    所以我做了以下事情:

    1. 打开 DB2 GUI(这样做最容易)。
    2. 以 db2admin 身份连接到所需的数据库。
    3. 将我作为用户登录到数据库。
    4. 授予该 ID(我的 ID)的所有权限。
    5. 断开。
    6. 以我的身份连接到所需的数据库。
    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。它会自动授予恢复到实例中的任何数据库。

    • 5

相关问题

  • 在 DB2 SQL 中模拟类似 REGEXP 的行为

  • 如何配置 PostgreSQL 9.0 在 Windows XP 下自动启动?

  • z/OS 上 DB2 v9 上的 BLOB

  • Oracle 可以在 Windows 上安装而不是管理员吗?

  • 解释计划中的 HSJOIN 是什么意思?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve