Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの設定 » ユーザ ID、権限、パーミッションの管理 » ユーザのパーミッションと権限の管理の概要

 

テーブルに対するパーミッションの付与

個々のテーブルにパーミッションのセットを割り当てて、これらのパーミッションの組み合わせをユーザに付与すると、テーブルへのアクセスを定義できます。

Sybase Central または Interactive SQL のいずれかを使用して、パーミッションを設定できます。Interactive SQL では、GRANT 文を使用してテーブルに以下のパーミッションを付与できます。

  • ALTER パーミッションによって、ユーザはテーブルの構造を変更したりテーブル上でトリガを作成したりできます。REFERENCES パーミッションでは、テーブル上にインデックスを作成し、さらに外部キーを作成できます。これらのパーミッションにより、データベース・スキーマの変更権限が付与されます。したがって、ほとんどのユーザは付与の対象になりません。また、これらのパーミッションはビューには適用されません。

  • DELETE、INSERT、UPDATE の各パーミッションは、テーブルのデータを修正する権限を付与します。

  • SELECT パーミッションは、テーブルのデータを見る権限を付与しますが、変更するためのパーミッションは付与しません。

  • ALL パーミッションは、これらすべてのパーミッションを付与します。

  • REFERENCES、SELECT、および UPDATE パーミッションは、対象をテーブルまたはビューのカラムのセットに限定できます。

♦  テーブルまたはカラムに対するパーミッションを付与するには、次の手順に従います (Sybase Central の場合)。
  1. DBA 権限のあるユーザとしてデータベースに接続します。

  2. [テーブル] をクリックします。

  3. テーブルを右クリックして、[プロパティ] を選択します。

  4. [パーミッション] タブをクリックし、テーブルのパーミッションを次の手順で設定します。

    • [付与] をクリックします。

    • ユーザまたはグループをダブルクリックします。

    • パーミッションの表で、ユーザまたはグループの横にあるフィールドをクリックして、特定のパーミッションを設定します。

    • ユーザを選択し、[変更] をクリックして、カラムに固有のパーミッションを設定します。

    • [OK] をクリックします。

    • すべてのパーミッションを取り消すには、ユーザまたはグループを選択して、[取り消し] をクリックします。

  5. [適用] をクリックします。

ヒント

[ユーザのプロパティ] または [グループのプロパティ] ウィンドウから、パーミッションを割り当てることもできます。パーミッションを複数のユーザまたはグループに割り当てるには、[テーブルのプロパティ] ウィンドウを使用します。パーミッションを複数のテーブルに割り当てるには、[ユーザのプロパティ] ウィンドウを使用します。

♦  テーブルまたはカラムに対するパーミッションを付与するには、次の手順に従います (SQL の場合)。
  1. DBA 権限のあるユーザとしてデータベースに接続します。

  2. GRANT 文を実行してパーミッションを割り当てます。

    GRANT 文を参照してください。

例 1

テーブル・パーミッションはすべて、よく似た方法で付与されます。たとえば、次の手順では、M_Haneef に sample_table というテーブルからローを削除するパーミッションを与えることができます。

  1. DBA 権限のあるユーザまたは sample_table の所有者としてデータベースに接続します。

  2. 次の SQL 文を実行します。

    GRANT DELETE
    ON sample_table
    TO M_Haneef;
例 2

次の手順で、sample_table という名前のテーブルに含まれるカラム column_1 と column_2 だけを更新するパーミッションを M_Haneef に与えることができます。

  1. DBA 権限のあるユーザまたは sample_table の所有者としてデータベースに接続します。

  2. 次の SQL 文を実行します。

    GRANT UPDATE ( column_1, column_2 )
    ON sample_table
    TO M_Haneef;

テーブル・パーミッションの対象は、テーブル内の全データに制限されます。ただし、REFERENCES、SELECT、および UPDATE パーミッションはカラムのサブセットに付与できます。さらに細かいユーザ・パーミッションを設定するには、テーブルに対してアクションを実行するプロシージャを作成し、そのプロシージャを実行するパーミッションをユーザに与えます。

参照