DB2 Express-C 11.1 のデータベースとユーザーの作成

まずはデータベースを作成します。そのあとにDB2にアクセスするためのユーザーを作成します。db2inst1はインスタンスのオーナーなので、これとは別のユーザーを持っておくほうが安全です。

db2コマンドを使ってデータベースを作ります。

db2 CREATE DATABASE sakuradb ON '/var/db2store/sakuradb' USING CODESET UTF-8 TERRITORY JP

sakuradbというデータベースをパス’/var/db2store/sakuradb’に作ります。文字コードはUTF-8で、テリトリはJPです。コマンド実行前に、ディレクトリ/var/db2store/sakuradbを作成しておいてください。

[db2inst1@sakura ~]$ mkdir /var/db2store/sakuradb
[db2inst1@sakura ~]$
[db2inst1@sakura ~]$ db2 CREATE DATABASE sakuradb ON '/var/db2store/sakuradb' USING CODESET UTF-8 TERRITORY JP
DB20000I  CREATE DATABASE コマンドが正常に完了しました。
[db2inst1@sakura ~]$

CREATE DATABASEしたときに、DB接続が存在しないというエラーが表示されることがあります。

[db2inst1@sakura ~]$ db2 "CREATE DATABASE sakuradb ON '/var/db2store/sakuradb' USING CODESET UTF-8 TERRITORY JP"
DB21034E  コマンドが、有効なコマンド行プロセッサー・コマ
ンドでないため、 SQL
ステートメントとして処理されました。  SQL
処理中に、次のエラーが返されました。
SQL1024N  データベース接続が存在しません。  SQLSTATE=08003
[db2inst1@sakura ~]$
[db2inst1@sakura ~]$

DB2のサンプルDBが必要かもしれません。db2samplコマンドを実行します。

[db2inst1@sakura ~]$ db2sampl

  Creating database "SAMPLE"...
  Connecting to database "SAMPLE"...
  Creating tables and data in schema "DB2INST1"...
  Creating tables with XML columns and XML data in schema "DB2INST1"...

  'db2sampl' processing complete.

[db2inst1@sakura ~]$

いちどログアウトして、再度db2inst1ユーザーにスイッチし、CREATE DATABASEコマンドを実行してみてください。

[db2inst1@sakura ~]$ db2 CONNECT TO <<<データベース名>>> USER <<<ユーザ名>>> USING <<<パスワード>>> 

とりあえず、先ほど作ったデータベースとインスタンスオーナーで接続してみます。

[db2inst1@sakura ~]$ db2 CONNECT TO sakuradb USER db2inst1 USING db2inst1

   データベース接続情報

 データベース・サーバー = DB2/LINUXX8664 11.1.3.3
 SQL 許可 ID            = DB2INST1
 ローカル・データベース別名 = SAKURADB

[db2inst1@sakura ~]$

データベースに接続してみます。

前述のとおりインスタンスオーナーですので、専用のユーザーを作成します。DB2は基本的にインストールされたOSのユーザーをアカウントとしてログインします。なので、基本的にOSでユーザーを作成、DB2で権限設定を行うことでアクセスできるようになります。

[root@sakura ~]# useradd sakura
[root@sakura ~]# passwd sakura
ユーザー sakura のパスワードを変更。
新しいパスワード:
よくないパスワード: このパスワードは 8 未満の文字列です。
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
[root@sakura ~]#

相変わらず怒られました(*´ω`*)

良い子はマネしないようにしてくださいね。

ユーザーを作ったら、ロールを割り当てます。GRANTコマンドを使って対象のユーザの権限を変更します。

db2 GRANT CONNECT ON DATABASE TO USER <<<ユーザ名>>> 

権限を設定したら、DBに接続できることを確認します。

[db2inst1@sakura ~]$ db2 CONNECT TO sakuradb USER sakura USING sakura

   データベース接続情報

 データベース・サーバー = DB2/LINUXX8664 11.1.3.3
 SQL 許可 ID            = SAKURA
 ローカル・データベース別名 = SAKURADB

[db2inst1@sakura ~]$

今後はここで作成したユーザを使います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください