20

テーブル内の 1 つの列のみを編集する権限をユーザーに付与したいと考えています。ここで使用するコマンドは何ですか? Oracle 11g データベースを使用しています。テーブル全体で読み取りまたは削除のみを許可する方法はすでに知っていますが、1 つ以上の列に対してのみ許可するにはどうすればよいですか? 例を挙げてください。

4

2 に答える 2

37

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

grant update (ename) on emp to xyz;

構文:

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

EDIT:(選択権限を付与するため)

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;
于 2013-01-22T16:29:12.810 に答える
6

このソースに基づいて:

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

次に例を示します。

GRANT update (column_name) ON table_name TO user_name;
于 2013-01-22T16:27:39.080 に答える