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、権限、パーミッションの管理 » ユーザのパーミッションと権限の管理の概要

 

プロシージャに対するパーミッションの付与

DBA 権限を持つユーザまたはプロシージャの所有者は、ストアド・プロシージャを実行するパーミッションを付与できます。EXECUTE パーミッションは、プロシージャに対して付与できる唯一のパーミッションです。

プロシージャを実行するパーミッションを与える方法は、テーブルとビューにパーミッションを与える方法と似ています。ただし、GRANT 文の WITH GRANT OPTION 句は、プロシージャに対するパーミッションの付与に適用されません。

Sybase Central または Interactive SQL のいずれかを使用して、パーミッションを設定できます。

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

  2. [プロシージャとファンクション] をクリックします。

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

  4. [パーミッション] タブをクリックします。

  5. プロシージャのパーミッションを次の手順で設定します。

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

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

    • プロシージャを実行するためのパーミッションを許可または取り消すには、ユーザまたはグループを選択し、[実行] カラムをクリックします。チェックマークは、ユーザまたはグループがプロシージャを実行できることを示します。

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

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

ヒント

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

♦  プロシージャに対するパーミッションを付与するには、次の手順に従います (SQL の場合)。
  1. DBA 権限のあるユーザまたはプロシージャの所有者としてデータベースに接続します。

  2. GRANT EXECUTE ON 文を実行します。

次の手順では、プロシージャ my_procedure を実行するパーミッションを M_Haneef に与えることができます。

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

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

    GRANT EXECUTE
    ON my_procedure
    TO M_Haneef;
プロシージャの EXECUTE パーミッション

プロシージャは所有者のパーミッションのもとで実行されます。テーブルの情報を更新するプロシージャが正しく実行されるのは、そのプロシージャの所有者が対象となるテーブルの UPDATE パーミッションを持っている場合のみです。

プロシージャの所有者が適切なパーミッションを持っていれば、そのプロシージャの EXECUTE パーミッションを割り当てられているユーザは、基本となるテーブルに対するパーミッションの有無にかかわらず、そのプロシージャを実行できます。プロシージャを使用すると、テーブルに対する一般的なパーミッションがなくても、ユーザがテーブルに一定の作業を行う許可を与えることができます。

参照