I-23-8. データベースのユーザ管理とアクセス制御
データベースにアクセスできるユーザを管理する方法と、アクセス制御の概念について、ユーザ管理およびアクセス制御を実現するための、基本的な作業手順を示す。またこれらに関する作業上の留意点を説明する。 |
【学習の要点】
* RDBMSのユーザに対し、データベースの操作やデータベースの構成要素ごとに、アクセス権を設定することが出来る。
* RDBMSのユーザに与えるアクセス権を必要最小限とすることで、ユーザのミスや不正アクセスによるデータの損失/改ざんのリスクを減らすことが出来る。
図I-23-8. データベースのユーザ管理とアクセス制御
【解説】
1) ユーザ管理とアクセス制御の目的
データベースを運用していると、利用者によって参照/更新可能なデータを限定したい場合がある。このような目的のため、多くのDBMSではユーザ管理とアクセス制御の機能を有する。OSによるデータベースファイルへのアクセス制御では困難な細かなアクセス制御を実装することができる。
2) ユーザ管理と認証
データベース接続時の認証方式はDBMSに依存するが、もっとも一般的なものは、DBMS独自のユーザとパスワードによってDBMSにログインさせる認証方式である。SQLには、
* 「CREATE USER」文 (ユーザの作成)
* 「DROP USER」文 (作成済みのユーザの削除)
といったユーザ管理用の命令がある。
3) アクセス制御
アクセス権には、「データベースへ接続する」「データを検索する」「データを新規登録する」「データを削除する」「データを更新する」「ユーザを作成する」など、さまざまなものがある。作成したユーザに対しアクセス権を設定しておくことで、ユーザがデータベースにアクセスする際の権限を制御できる。SQLには、
* 「GRANT」文 (権限の付与)
* 「REVOKE」文 (付与済みの権限の剥奪)
といったアクセス権設定用の命令がある。
権限付与の際は適用範囲を設定できる。適用範囲のレベルには、「DBMS」「データベース」「表」などがあり、例えば「データベース」のレベルで「表に行を挿入する」権限を付与すると、指定したデータベースのすべての表において、行を挿入することが可能となる。
4) 基本的な作業手順
ユーザ管理とアクセス制御を実現する基本的な手順は以下の通りである。
* DBMSの管理権限を持つ既存のユーザでDBMSにログインする。
* データベースを作成し、作成したデータベース上に表や索引などのスキーマを定義する。
* ユーザを作成し、パスワードを設定する。
* 作成したユーザに必要最小限の権限を付与する。
5) 作業上の留意点
* ユーザに権限を付与する場合は、セキュリティを考慮し、必要最小限の権限とする。必要以上に権限を付与すると、ユーザの操作ミスや不正アクセスによるデータの損失/改ざんのリスクが増大する。
* ユーザに権限を付与する時は、極力、対象ユーザをデータベースから切断しておく。対象ユーザがデータベースに接続した状態のまま権限を変更した場合、その変更がどの程度即時に反映されるかはDBMSに依存してしまう。
OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。