3

我无法浏览 SAMPLE DB 上的数据。设置如下:-Windows 7 64 位 PRO,-IBM DB2 Express-C,10.5.500.107(最新)-IBM Data Studio 版本 4.1.1(管理安装,使用 IBM Installation Manager 1.8.1 安装)

数据库凭据是:db2admin/db2admin Windows 管理员用户名是:Nenad(密码保护)

使用 DB2 命令行处理器(开始 -> IBM DB2 DB2COPY1(默认)-> DB2 命令行处理器),我可以使用以下命令连接到 SAMPLE 数据库:

db2 => connect to sample
Database Connection Information

 Database server        = DB2/NT64 10.5.5
 SQL authorization ID   = NENAD
 Local database alias   = SAMPLE

并查询人员表:

db2 => select * from staff

ID     NAME      DEPT   JOB   YEARS  SALARY    COMM
------ --------- ------ ----- ------ --------- ---------
    10 Sanders       20 Mgr        7  98357.50         -
    20 Pernal        20 Sales      8  78171.25    612.45
    30 Marenghi      38 Mgr        5  77506.75         -
    40 O'Brien       38 Sales      6  78006.00    846.55
    50 Hanes         15 Mgr       10  80659.80         -
    60 Quigley       38 Sales      -  66808.30    650.25
    70 Rothman       15 Sales      7  76502.83   1152.00
    80 James         20 Clerk      -  43504.60    128.20
    90 Koonitz       42 Sales      6  38001.75   1386.70
   100 Plotz         42 Mgr        7  78352.80         -
   110 Ngan          15 Clerk      5  42508.20    206.60
   120 Naughton      38 Clerk      -  42954.75    180.00
   130 Yamaguchi     42 Clerk      6  40505.90     75.60
   140 Fraye         51 Mgr        6  91150.00         -
   150 Williams      51 Sales      6  79456.50    637.65
   160 Molinare      10 Mgr        7  82959.20         -
   170 Kermisch      15 Clerk      4  42258.50    110.10
   180 Abrahams      38 Clerk      3  37009.75    236.50
   190 Sneider       20 Clerk      8  34252.75    126.50
   200 Scoutten      42 Clerk      -  41508.60     84.20
   210 Lu            10 Mgr       10  90010.00         -
   220 Smith         51 Sales      7  87654.50    992.80
   230 Lundquist     51 Clerk      3  83369.80    189.65
   240 Daniels       10 Mgr        5  79260.25         -
   250 Wheeler       51 Clerk      6  74460.00    513.30
   260 Jones         10 Mgr       12  81234.00         -
   270 Lea           66 Mgr        9  88555.50         -
   280 Wilson        66 Sales      9  78674.50    811.50
   290 Quill         84 Mgr       10  89818.00         -
   300 Davis         84 Sales      5  65454.50    806.10
   310 Graham        66 Sales     13  71000.00    200.30
   320 Gonzales      66 Sales      4  76858.20    844.00
   330 Burke         66 Clerk      1  49988.00     55.50
   340 Edwards       84 Sales      7  67844.00   1285.00
   350 Gafney        84 Clerk      5  43030.50    188.00

  35 record(s) selected.

所以我猜 DB/DBMS 工作正常。

然后我使用设置在 Data Studio 中创建连接:

Database: SAMPLE
Host: localhost
Port number: 50000
Username: db2admin
Password: db2admin

测试连接:用Ping成功!结果。

当我点击表格时,我可以看到所有表格。

但是当我右键单击 (Schema: NENAD) (Table Name: STAFF) Data -> Browse Data 我得到这个错误:

数据工作室错误

com.ibm.db2.jcc.am.SqlSyntaxErrorException:语句失败,因为授权标识没有执行操作所需的授权或特权。授权 ID:“DB2ADMIN”。操作:“选择”。对象:“NENAD.STAFF”.. SQLCODE=-551, SQLSTATE=42501, DRIVER=4.18.60 语句失败,因为授权 ID 没有执行操作所需的授权或特权。授权 ID:“DB2ADMIN”。操作:“选择”。对象:“NENAD.STAFF”.. SQLCODE=-551,SQLSTATE=42501,DRIVER=4.18.60

我尝试使用各种设置和用户名多次重新安装 DB2 和 Data Studio,我尝试右键单击表然后管理权限(将所有权限授予 DB2ADMIN 和 NENAD)但徒劳无功。

我也无法创建新数据库,出现此错误:

CREATE DATABASE FTN AUTOMATIC STORAGE YES ON 'C:\DB2\NODE0000' DBPATH ON 'C:\DB2\NODE0000' ALIAS FTN WITH 'FTN database' 未能执行命令。DAS 返回以下错误:sqlcode=-22201 output=null

我的问题是:

  1. 我应该如何解决这个错误?
  2. 有没有一种简单的方法(就像在 SQL 开发人员中一样)来创建用户,然后单击授予所有权限,就是这样?

使用 Oracle Express DB 和 SQL Studio,我以这种(非常简单)的方式创建新用户并授予权限:

在此处输入图像描述 在此处输入图像描述


编辑 - 更新: 我不得不使用:

Step 1:
Start menu -> IBM DB2 DB2COPY1 (Default) -> DB2 Command Line Processor
In DB2 Command Line Processor: 
db2 => connect to sample
db2 => GRANT DBADM ON DATABASE to db2admin

Step 2:
db2admin stop 
db2admin start

之后我能够在 Data Studio 中浏览数据并执行查询,但我仍然无法从 Data Studio 创建新数据库


这些帖子没有直接关系或没有帮助我解决这个问题:

无法将 IBM Data Studio 与 DB2 Express-C 连接(错误:用户 ID 已撤销)

DB2 查询在 IBM Data Studio 中运行,但不在代码中

IBM Data Studio 连接错误 SQL1035N

IBM 数据工作室

IBM Data Studio 未连接到本地 DB2 数据库

db2 Express-C SAMPLE 数据库

为什么我在 Data Studio 中看不到我的所有 DB2 实例?

IBM DB2 创建的模式不可见?

IBM Data Studio(管理员客户端)版本 3.1.1

如何使用 IBM Data Studio 在 db2 10.1 中创建新实例

如何在 IBM Data Studio 的数据库上创建新模式?

4

2 回答 2

3

您的问题是您正在以 Nenad 身份登录命令行(您可以通过默认模式来判断),并且您正在以 db2admin 身份通过 DataStudio 登录数据库。您需要以 Nenad 身份登录 Data Studio。或者作为 Nenad,您需要向用户 ID db2admin 授予适当的权限。

编辑:为了更好地解释事情以及您在下面的评论中的问题...... DB2 不像其他数据库那样使用创建的用户 ID。它查看底层操作系统或 LDAP 进行身份验证。在 Unix/Linux 环境中,管理上最高 ID 的实例 ID 是该实例设置为运行的 ID。您的 db2admin 帐户就是这个帐户。话虽如此....Windows 引入了不同的安全方案。即使实例 ID 存在,安装产品的人(他们的用户 ID)也往往被授予 DB2 中的高级管理权限。当您发出CREATE DATABASE声明时,您使用的是您的 Windows 用户 ID。因此,它成为数据库的所有者,并具有DBADMSECADMDATAACCESS、 和ACCESSCTRL授予它。db2admin 通常会有DBADM WITHOUT DATAACCESS WITHOUT ACCESSCTRL. 因此,您需要以 Nenad(带有 的 ID SECADM)身份登录并授予(为安全起见)DBADM, SECADM, DATAACCESS, ACCESSCTRL用户 db2admin。现在该 ID 应该具有您要查找的内容。

我不建议任何 ID 都具有这些特权。如果您只需要访问表的读/写权限,那么DATAACCESS就应该单独完成。

于 2015-03-09T16:44:41.587 回答
0

I've the same problem to create a new Database, and I've resolved by running this command: db2set DB2_CREATE_DB_ON_CHANGE=YES With DB2 Command Window (as administrator): (1) stop the database (2) run db2set DB2_CREATE_DB_ON_CHANGE=YES (3) start the database

Now you can create a new database with Data Studio by specifying local storage, database name......

于 2015-08-03T01:55:17.607 回答