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


db2 CREATE DATABASE XYZ
db2 DROP   DATABASE XYZ

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

"SQL1092N 请求的命令或操作失败,因为用户标识没有执行请求的命令或操作的权限。">

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

  1. 但是我需要使用与Java代码相同的机制,但不知道如何使用。是否可以以不同的用户形式打开已安装的 db2 的 clp Java 代码?
  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> 进行附加。

最新更新