【问题标题】:IBM Data Studio can't browse data on SAMPLE (DB2 Express-C)IBM Data Studio 无法浏览 SAMPLE (DB2 Express-C) 上的数据
【发布时间】:2015-05-09 21:05:41
【问题描述】:

我无法浏览 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:“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 创建新数据库


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

Cannot connect IBM data studio with DB2 Express-C (Error: User Id Revoked)

DB2 query runs in IBM Data Studio but not in code

IBM Data Studio Connection error SQL1035N

IBM Data Studio

IBM data studio not connecting to local DB2 databases

db2 Express-C SAMPLE database

Why don't I see all of my DB2 instances in Data Studio?

IBM DB2 created schema is not visible?

IBM Data Studio (Admin client) version 3.1.1

How to create New instance in db2 10.1 using IBM Data Studio

How to create a new schema on a database at IBM Data Studio?

【问题讨论】:

    标签: db2 ibm-data-studio


    【解决方案1】:

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

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

    我不建议任何 ID 都具有这些权限。如果你只需要 访问表的读/写权限,然后 DATAACCESS 就应该这样做。

    【讨论】:

    • 非常感谢!我使用 Windows 凭据登录 Data Studio(这在 Oracle SQL Developer 中是不可能的,因此我很困惑)并且 - viola - 我能够查询 SAMPLE 和浏览数据,以及创建新数据库。请您向我解释一下 - 扩展您的答案,我应该如何向 db2admin 授予权限(从命令提示符或 Data Studio)以使该用户能够创建新数据库和查询/浏览现有数据库。
    • 非常感谢您为我解决这个问题“...DB2 不像其他数据库那样使用创建的用户 ID ....” - 这是我困惑的主要原因,就像我一样我是 IBM DB2 的新手。
    • @NenadBulatovic - 我很高兴。乐意效劳。 :)
    【解决方案2】:

    我在创建新数据库时遇到了同样的问题,我通过运行以下命令解决了:db2set DB2_CREATE_DB_ON_CHANGE=YES 使用 DB2 命令窗口(以管理员身份): (1) 停止数据库 (2) 运行db2set DB2_CREATE_DB_ON_CHANGE=YES (3) 启动数据库

    现在您可以使用 Data Studio 通过指定本地存储、数据库名称来创建新数据库......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多