仅在表中的一列上授予alter

时间:2013-01-22 15:42:07

标签: database oracle11g grant

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

2 个答案:

答案 0 :(得分:22)

例如,您只想在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;

答案 1 :(得分:5)

基于this source

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

以下是一个例子:

GRANT update (column_name) ON table_name TO user_name;