・・・などというメモを書く日が来るとは思いもよらず。
しかし実際の肌感覚として日本のユーザー様が初めてセキュリティに真剣になっていると感じる今日この頃です。
IBM i / Db2 for i でSQLアクセス不可なデータベースを構築する方法
IBM i 搭載のデータベースDb2 for i は掲題の環境を即座に構築できます。
ポイントは2点。
1. IBM i (Db2 for i) のSQLインターフェースを全遮断する。
SQLを使用するサーバージョブを起動しない、ということです。
2. Db2 for i のテーブル(PF)のマルチメンバーを利用する
Db2 for iはマルチメンバーといって1つのテーブル内に複数のテーブルメンバーを追加することができます。一方でSQLにはマルチメンバー、という概念そのものがありません。このためマルチメンバーで構成したDb2 for i テーブルでSQLからアクセスできるのは基本的には1番最初に作成したメンバーだけ、になります。この特性を活かして、1つ目のPFメンバーはダミーとし、2つ目以降のPFメンバーにデータを格納すれば鉄壁でしょう。SQLからはその存在が不可視なるわけです。
ん?じゃあどうやってデータベースを利用するの?
SQLなしでデータベースアクセスできないじゃんア〇か・・・
ではなくて。SQLを使用しないデータベースアクセスは現実世界では相当数稼働しています。たとえばRPG, COBOLのネイティブアクセス(レコードレベルアクセス)を使います。
基本はこれだと思いますが他にも方法はあるとは思います。たとえばQUERY/400(参照系) や DFU(更新系) のような非SQL系のIBM i ユーティリティーツールを使う方法です。
5250端末、3270端末も見直されてよさそう
筆者の歴史はいかに5250端末グリーンスクリーンをモダンなGUIインターフェースに置き換えていくか、というテーマがあったのですが、このセキュリティ侵害常態化の現代にあっては5250インターフェース(や3270端末)は見直されていいように思います。アクセス侵害の観点ではもっとも堅牢なインターフェース、という事も言えそうです。
安全と水はタダじゃない、という事が言われますが、、