20

我只想授予用户编辑表中的一列。我在这里使用什么命令?我使用oracle 11g 数据库。我已经知道如何仅授予对整个表的读取或删除权限,但是如何仅对一列或更多列执行此操作?请举个例子。

4

2 回答 2

37

例如,您只想授予对 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;
于 2013-01-22T16:29:12.810 回答
6

基于此来源

只能在列级别授予INSERTUPDATE和权限。REFERENCES在列级别授予INSERT时,您必须在行中包含所有非空列。

这是一个例子:

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