为除计算机登录用户之外的特定用户运行创建/删除DB2数据库命令

时间:2012-09-05 07:30:06

标签: java db2

db2 CREATE DATABASE XYZ

db2 DROP   DATABASE XYZ

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

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

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

  1. 但是我需要从Java代码中使用相同的机制,但不知道如何。是否可以将已安装的db2的clp作为不同的用户形式打开Java代码?
  2. 是否可以在create / drop命令中关联用户名/密码?

1 个答案:

答案 0 :(得分:2)

从CLP中,您可以使用您需要的任何用户ID首先ATTACH到实例,然后发出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 directory的输出中显示的节点名称为SRV01,因此您可以使用:db2 attach to srv01 user <username>附加。