3
db2 CREATE DATABASE XYZ

db2 DROP   DATABASE XYZ

这些 db2 命令不支持在 db2cmd/db2clp 上为机器登录用户以外的特定用户执行时指定用户名/密码。因此导致异常

“SQL1092N 请求的命令或操作失败,因为用户标识无权执行请求的命令或操作。”

当通过选择“以不同用户身份运行”运行相同的命令时,它可以正常工作。

  1. 但我需要从 Java 代码中使用相同的机制,但不知道如何。是否可以以不同的用户表单 Java 代码打开已安装的 db2 的 clp?
  2. 是否可以在创建/删除命令中关联用户名/密码?
4

1 回答 1

3

您可以从 CLP 首先ATTACH使用所需的任何用户 ID 访问实例,然后发出CREATE DATABASE命令。

如果实例在您的本地机器上运行,您只需像这样附加:

$ db2 attach to db2inst1 user db2inst1
Enter current password for db2inst1: 

   Instance Attachment Information

 Instance server        = DB2/LINUXX8664 9.7.5
 Authorization ID       = DB2INST1
 Local instance alias   = DB2INST1

如果实例在远程服务器上运行,则附加到您在数据库目录中定义的“节点名称”:

$ db2 list db directory

 System Database Directory

 Number of entries in the directory = 1

Database 1 entry:

 Database alias                       = SAMPLE
 Database name                        = SAMPLE
 Node name                            = SRV01
 Database release level               = d.00
 Comment                              =
 Directory entry type                 = Remote
 Catalog database partition number    = -1
 Alternate server hostname            =
 Alternate server port number         =

在此示例中,输出中显示的节点名称list database directorySRV01,因此您可以使用: 附加 db2 attach to srv01 user <username>

于 2012-09-06T17:08:13.947 回答