web-dev-qa-db-ja.com

テーブルの1つの列のみに変更を許可

テーブルの1つの列を編集することのみをユーザーに許可します。ここではどのコマンドを使用しますか? Oracle 11gデータベースを使用しています。テーブル全体に対して読み取りまたは削除のみを許可する方法を知っているのですが、1列以上に対してのみそれを行うにはどうすればよいですか? plsが例を示します。

15

たとえば、ename列のみに更新権限を付与し、次のステートメントを実行します(xyzはユーザー名です)。

grant update (ename) on emp to xyz;

構文:

grant update(column-name) on table-name to user-name

編集:(選択特権を付与するため)

EmpテーブルのselectステートメントをXYZに付与し、XYZがこの特権をさらに渡すことができるようにするには、このようなGRANTステートメントでWITH GRANT OPTION句を指定する必要があります。

grant select on emp to xyz with grant option;

また、たとえば、ename列のみに更新権限を付与し、empno列とename列のみに挿入権限を付与するには、次のようにします。

grant update (ename),insert (empno, ename)  on emp to xyz;
24

this source に基づく:

列レベルで付与できるのは、INSERTUPDATE、およびREFERENCES特権のみです。列レベルでINSERTを付与する場合、行にnull以外のすべての列を含める必要があります。

次に例を示します。

GRANT update (column_name) ON table_name TO user_name;
4
maialithar