db2 CREATE DATABASE XYZ
db2 DROP DATABASE XYZ
这些 db2 命令不支持在 db2cmd/db2clp 上为机器登录用户以外的特定用户指定用户名/密码。因此导致异常
"SQL1092N 请求的命令或操作失败,因为用户标识没有执行请求的命令或操作的权限。">
当通过选择"以不同用户身份运行"来运行相同的命令时,它可以正常工作。
- 但是我需要使用与Java代码相同的机制,但不知道如何使用。是否可以以不同的用户形式打开已安装的 db2 的 clp Java 代码?
- 是否可以在创建/删除命令中关联用户名/密码?
在 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>
进行附加。