Db2 on CP4Dへの接続 - グループを追加しておくと便利! ユーザーを追加する

Cloud Pak for Data (以下CP4D)内のDb2, Db2 Warehouseサービスへ接続するためのユーザーの追加方法を2つご紹介します。
- [Db2 on CP4Dへの接続 - ユーザーを追加する](https://qiita.com/mi-shimo/items/4543945d1a659514554c) ：初めてやってみるとか、ちょっとした確認のため1ユーザー作成してDb2サービスへ接続したいという場合にお使いください。
- [Db2 on CP4Dへの接続 - グループを追加しておくと便利! ユーザーを追加する](https://qiita.com/mi-shimo/items/b0e7034a6f51af599fcd) : 本文書です。　Db2サービスのユーザー管理の入門としてお使いください。Db2データベースにCP4Dユーザー・グループを登録してユーザー管理が簡単になります。


ここでは　CP4Dの内のDb2サービスのユーザー管理を簡単にする方法-CP4Dのユーザー・グループを登録しておく方法-をご紹介します。ステップは次の通りです。
- Step1 CP4Dのユーザーをユーザーグループに所属させておく。
- Step2 Db2データベースへCP4Dユーザー・グループを追加する。
- Step3 新規CP4Dユーザー追加してDb2に接続できるユーザーグループに所属させる。

"Step2 Db2データベースへCP4Dユーザー・グループを追加する。"を実施した後は、Db2データベースへのユーザー・アクセス管理(追加や削除など)は、Db2データベースの"アクセス管理"を操作するすることなくCP4Dの"アクセス制御"のみで作業できます。
異なるグループを新たにDb2データベースに追加する場合は　"Step2 Db2データベースへCP4Dユーザー・グループを追加する。"を実行する必要があります。

本記事は Db2で記述していますが　Db2 Warehouseサービスも同じ手順で作業します。



## Step1 CP4Dユーザーグループにユーザーを所属させておく。　
1. まず　CP4Dのユーザーで　Db2サービスへ接続したいユーザーが存在することを確認します。
管理者権限をもったユーザーでCP4DコンソールにLOGINし　メニューから 管理→ アクセス制御を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/2db06e7f-5b18-037f-4176-c3e26e48abce.png)
存在しなければ"ユーザーの追加"で追加できます。ここでは　"user02"を使用します。　

2. Db2サービスへ接続させたいグループが存在することを確認します。
"アクセス制御"のページで"ユーザー・グループ"のタブを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/790ab06b-775e-6428-4bde-89c1a6857eba.png)
存在しなければ"新しいユーザ・グループ"で追加できます。ここでは"MSUSER"を使用します。"MSUSER"には"user02"が所属しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/5eb54ec2-02fb-ce9b-16f2-acf8e41a0275.png)

3. この時点ではuser02ではDb2データベースへ接続できません。
(1) Db2 のPODにはいってデータベース名BLUDBを確認するまでの手順
```
[user99@bastion7 ~]$ oc exec -it c-db2oltp-202304130627-db2u-0 -- bash
Defaulted container "db2u" out of: db2u, init-labels (init), init-kernel (init)
[db2uadm@c-db2oltp-202304130627-db2u-0 /]$ su - db2inst1
Last login: Wed Nov 23 23:28:40 UTC 2022
[db2inst1@c-db2oltp-202304130627-db2u-0 - Db2U db2inst1]$ db2 list db directory

 System Database Directory

 Number of entries in the directory = 1

Database 1 entry:

 Database alias                       = BLUDB
 Database name                        = BLUDB
 Local database directory             = /mnt/blumeta0/db2/databases
 Database release level               = 15.00
 Comment                              =
 Directory entry type                 = Indirect
 Catalog database partition number    = 0
 Alternate server hostname            =
 Alternate server port number         =

[db2inst1@c-db2oltp-202304130627-db2u-0 - Db2U db2inst1]$
```
(2) Db2データベースBLUDBへuser02で接続しようとして失敗した例
```
[db2inst1@c-db2oltp-202304130627-db2u-0 - Db2U db2inst1]$ db2 connect to bludb user user02 using xxxxxx
SQL30082N  Security processing failed with reason "24" ("USERNAME AND/OR
PASSWORD INVALID").  SQLSTATE=08001
[db2inst1@c-db2oltp-202304130627-db2u-0 - Db2U db2inst1]$
```

## Step2 Db2データベースへCP4Dユーザー・グループを追加する。
1. Db2データベースの"アクセスの管理"を開く 
CP4Dコンソールのメニューから データ→ データベースを選択します。
接続したいDb2データベースの右上のトリコロンから　"アクセスの管理"を選択し"アクセスの管理"パネルに入ります。
すると登録されているユーザーが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/4294fb70-4fc6-6143-ce27-1599c53147ee.png)
↑の例は作成したばかりのデータベースなので adminだけが登録されています。

2. Db2データベースへCP4Dユーザー・グループを追加する
"アクセスの管理"パネルの右上方にある"ユーザーの追加"を選択すると CP4Dのユーザー,ユーザー・グループがリストされます。　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/d1b3fba2-c871-2dd0-659d-fcce457d65be.png)
Db2データベースへ追加するユーザー・グループ"MSUSER"を追加するためにチェックボックスにチェックして"ロールの選択"を行います。　今回は"User"を選択して　"追加"します。

3. Db2データベースのアクセス管理に　CP4Dユーザー・グループMSUSERが追加されました。　MSUSERグループのuser02も属しているのが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/f923625b-4f6e-e000-e3e3-78546174f708.png)

4. user02でDb2データベースへ接続できるようになりました。
```
[db2inst1@c-db2oltp-202304130627-db2u-0 - Db2U db2inst1]$ db2 connect to bludb user user02 using xxxxxx

   Database Connection Information

 Database server        = DB2/LINUXX8664 11.5.8.0
 SQL authorization ID   = USER02
 Local database alias   = BLUDB

[db2inst1@c-db2oltp-202304130627-db2u-0 - Db2U db2inst1]$
```

## Step3 新規CP4Dユーザー追加してDb2に接続できるユーザーグループに所属させる。
1. 新規CP4Dユーザーを作成するために　メニューから 管理→ アクセス制御を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/ae383cd2-dc51-bfba-98f9-ac0b08873733.png)

2. 例としてuser03を追加してDb2データベースへのアクセスを可能にしたCP4Dユーザー・グループMSUSERに所属させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/44bf2b0b-42b5-d046-467d-82a7c29e12d8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/855502/5e4943e0-b13d-ec66-5741-d79c5004acf4.png)

3. Db2データベースの"アクセス管理"を操作することなく　user03でDb2データベースへ接続できるようになりました。
```
[db2inst1@c-db2oltp-202304130217-db2u-0 - Db2U db2inst1]$ db2 connect to bludb user user03 using xxxxxxx

   Database Connection Information

 Database server        = DB2/LINUXX8664 11.5.8.0
 SQL authorization ID   = USER03
 Local database alias   = BLUDB

[db2inst1@c-db2oltp-202304130217-db2u-0 - Db2U db2inst1]$
```


### 実施環境　Db2
- IBM Cloud VPC Gen2
- OCP 4.10
- CP4D 4.6.4
  - Db2 Version 11.5.8.0-cn2