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

db2 CREATE DATABASE XYZ db2 DROP DATABASE XYZ 

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

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

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

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

从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 db2 attach to srv01 user