データベース、Oracle、およびMySQLの定義者権限と呼び出し者権限とは何ですか?わかりません。
簡単な例を見てみましょう:
この手順には、「定義者権限」を使用します。これは、Oracleのデフォルトです。
CREATE PROCEDURE DEL_EMP AS
BEGIN
DELETE FROM EMP;
END;
このプロシージャを呼び出す別のユーザーには、このプロシージャのEXECUTE
特権のみが必要です。このようなユーザーがテーブルEMPに対するDELETE
特権を持っている必要はありません。
プロシージャは、プロシージャの所有者(またはdefinedが定義されているユーザー、つまり「定義者」権限と呼ばれる)の許可の下で実行されます。
「Inovker Rights」はその逆です。このプロシージャを正常に実行したいユーザーは、このプロシージャのEXECUTE
特権andDELETE
特権がテーブルEMPに必要です。
定義者と呼び出し者の権利に関しては、さらにいくつかのポイントがありますが、一般的な理解にはこれで十分です。
DEFINERおよびINVOKERの権限(別名SQL SECURITY
)mysqldがリクエストをどのように見て、mysqlユーザーが何を求めているかを予測する方法を示します。
また、mysqlユーザーが以下に対するすべての必要な権限を持っている場合も同様です。
私は過去にこの質問に取り組みました
Jun 12, 2013
: MySQL:ストアドプロシージャを使用したアクセスの保護Apr 08, 2013
: なぜこの手順で特権エラーが発生するのですか?Mar 08, 2013
: EMS SQLマネージャー権限の問題Mar 23, 2012
: MySQL Views Authorization