3
db2 CREATE DATABASE XYZ

db2 DROP   DATABASE XYZ

これらのdb2コマンドは、マシンにログインしているユーザー以外の特定のユーザーのdb2cmd/db2clpでの実行中にユーザー名/パスワードを指定するためのサポートを提供しません。したがって、例外が発生します

「SQL1092NユーザーIDに要求されたコマンドまたは操作を実行する権限がないため、要求されたコマンドまたは操作は失敗しました。」

また、[別のユーザーとして実行]を選択した場合と同じコマンドを実行すると、正しく機能します。

  1. しかし、Javaコードから同じメカニズムを使用する必要がありますが、その方法がわかりません。インストールされたdb2のclpを別のユーザー形式のJavaコードとして開くことは可能ですか?
  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 に答える