連載
» 2016年02月15日 05時00分 公開

「データベースセキュリティ」の視点から見る「ユーザー管理」「監査証跡(ログ)管理」のポイントシステムインテグレーションとセキュリティ(1)(2/3 ページ)

[中野資久(ラック),@IT]

ユーザー管理のポイント

  1. アプリケーション(プログラム)が利用するユーザーと、作業で人が利用するユーザーは別々に用意する
    SQLを発行したのが「アプリケーションか人か」を判断できるようにし、監査証跡(ログ)やセッション情報、ユーザー貸出台帳を突き合わせることで、『誰がその操作を実行したのか』を明確化できます

  2. 人が利用するユーザーは外部認証とし、対応するOSユーザーでパスワード管理を行う
    ID管理をOS側に任せることで、管理がシンプルになります

  3. 人が利用するユーザーは権限レベルの異なる複数のユーザーを用意する(参照ユーザー、参照更新ユーザー、管理ユーザーなど)
    あらかじめ想定していた操作以外を、技術的にさせないようにします

  4. ID管理部門(システム作業者とは違う部門)がユーザーの貸し出しを行う
    公正な立場で貸出ユーザーを判断するために当然のことです

  5. 「作業に必要な最低限の権限をもつユーザー」を貸し出す
    あらかじめ想定していた操作以外を、技術的にさせないようにします

  6. 使われないユーザーはロックする(導入時に自動的に作成されるユーザーなど)
    脆弱性となり得る点は残さないようにします

  7. 実行したSQL文は、監査証跡(ログ)に出力する
    不正に気付くため、また不正を抑止するために行います

  8. ユーザープロファイルでパスワードの各種制限を設定する
    セキュリティを向上させ、不正アクセスをやりにくくする効果があります

  9. SYSDBA権限でのパスワードなしログインは禁止する
    最も強い権限であるがゆえの対策です

 以上のポイントを順守して、日頃よりセキュリティを意識したユーザー管理を行うことが重要です。ところで、上記のポイントの中で、「外部認証」について触れています。これは、データベースユーザーの認証を外部サービスで実施する方法です。例えば「XというOSユーザーにログインすることが許可されている人には、データベースユーザーxの使用も許可する」といったものです。OSユーザーXでデータベースに接続すれば、データベース側でのユーザー名・パスワードの入力は不要となります。この仕組みを活用し、OSユーザーXの所属グループを最小限にすれば、セキュリティを確保しつつパスワード管理をOS側に一元化することができ、セキュリティと利便性を両立させることができます。

図1 外部認証のイメージ

 以下は、外部認証を使ったOracle Databaseへのログイン実行例です。

$ whoami
X                 ←OSユーザーXで接続中
$ sqlplus /    ←Oracleユーザー名、パスワードの入力は不要
SQL> show user
SQL> x      ←OSユーザーXに対応したOracleユーザーxで接続できる

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。