前項で解説した認証だけではデータベースへの接続が可能になっただけです。まだデータを操作することはできません。データを操作するには、そのための権限を設定する必要があります。権限の種類については各製品のマニュアルを参照していただくとして、ここでは権限の設定方法について説明します。OracleとDB2は2つの権限コマンド「GRANT」と「REVOKE」でユーザーに対する権限を管理します。
一方、SQL Serverではさらに「DENY」という権限コマンドがあります。なぜこのようなコマンドがあるのでしょうか? Oracleは権限をまとめたロールをユーザーに付与し、DB2はOSのユーザーグループに対して権限を付与するためロールという考えはありません。一方、SQL Serverはユーザーグループが権限(ロール)の固まりだと考えられます。これはSQL ServerがWindowsの権限管理と同じ手法で作られているからです。そのため「DENY」権限コマンドは、ロール(グループ)の中で権限の割り当てを変更するために必要となります。
このSQL Serverのロールの考え方は、SQL Server Enterprise Managerのデータベースロールのプロパティ画面(図3)でロールを定義する際ユーザーを保持することや、sp_addrolememberストアドプロシージャの名前にユーザー(メンバー)を追加するという意味が含まれていることからも理解できます。
権限の設定について、例を用いて説明します。図4のようにユーザー(User A、User B、User C)と権限のグループおよびテーブル(TABLE1、TABLE2、TABLE3)があり、各権限のグループはTABLE1、TABLE2、TABLE3に対するアクセス権限を割り当てているとします。
User AだけTABLE1へのアクセス権限を割り当てないようにするには、以下のように行います。
OracleとDB2の場合
SQL Serverの場合
次ページでは、「データベースファイル管理」について、各RDBMSの違いを見ていきます。
Copyright © ITmedia, Inc. All Rights Reserved.