概要
タイトルが長くなってしまいましたが、CognosからデータソースであるDBへの接続は、基本的に1本の接続定義(接続用ユーザーIDも1ユーザーを定義)にて接続するため、Cognos側のログインユーザーが誰であろうと、DB側から見ると同じユーザーでアクセスしてきているように見えます。
そうなると、DB製品としての、接続ユーザーに対してキメ細やかな権限管理や監査を提供する機能が使えない、という話が良くあります。
そんな時に役に立ちそうな参照情報を、まとめておきます。
基本的には、Cognosのデータソース定義の中で設定できる、コマンドブロックを使用します。
下図の、「セッション開始のコマンド」の設定を行う事で、CognosからDBへの接続時に何らかの情報を投げたり、コマンドを実行したりする事ができます。
Oracle データセキュリティ機能との連携
少し古い資料ですが、Oracleのデータセキュリティ機能とCognosを連携する際に、CognosのコマンドブロックでOracleにユーザーIDやパスワードの情報を投げている、最もわかりやすい説明資料ですが、なぜか検索にひっかかりにくい資料なので、貴重な資料として紹介しておきます。
http://public.dhe.ibm.com/software/dw/dm/cognos/security/design/leveraging_oracle_security_public.pdf
DB2との連携
前述の様に、Oracleの場合の記載方法の情報は見つかるのですが、OCI_ATTR_XXXXと書かれると、Oracle接続のための書き方に思えるので、DB2の場合はどうするのだろうと悩みます。
そんな時に、このTechnoteが役に立ちます。
Troubleshooting IBM Cognos BI accessing DB2 Data Sources configured for Trusted Context
http://www-01.ibm.com/support/docview.wss?uid=swg21449936
Oracleの接続にしか見えないですが、
**Although the name of the argument is OCI_ATTR_USERNAME which reminds of ORACLE it is indeed correct and deliberately set. **
だそうです。
DB2のトラステッドコンテキスト機能は、こちらをご参照下さい。
https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_9.5.0/com.ibm.db2.luw.admin.sec.doc/doc/c0050514.html
DB2の監査機能との連携
以下のように、WorkLoadManagerのストアードプロシージャーを呼び出す記述を行う事で、DB2側にユーザー名を渡し、DB2の監査機能を利用する事ができます。
DB2の監査機能は、こちらをご参照下さい。
http://www.ibm.com/developerworks/jp/data/library/dataserver/j-d_db2security02/
http://www.ibm.com/developerworks/jp/data/library/dataserver/j-d_db2security03/