仅在表中的一列上授予alter

Vin*_*öck 14 database grant oracle11g

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

Vin*_*wan 24

例如,您只想在ename列上授予更新权限,然后给出以下语句(其中xyz是用户名)

grant update (ename) on emp to xyz;
Run Code Online (Sandbox Code Playgroud)

句法:

grant update(column-name) on table-name to user-name
Run Code Online (Sandbox Code Playgroud)

编辑:(用于授予选择权限)

要将emp表上的select语句授予XYZ并使XYZ能够进一步传递此权限,您必须在GRANT语句中给出WITH GRANT OPTION子句,如下所示.

grant select on emp to xyz with grant option;
Run Code Online (Sandbox Code Playgroud)

此外,例如,您只想在ename列上授予更新权限,并且仅在empno和ename列上插入权限,您可以这样做:

grant update (ename),insert (empno, ename)  on emp to xyz;
Run Code Online (Sandbox Code Playgroud)


mai*_*har 5

基于此来源

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

下面是一个例子:

GRANT update (column_name) ON table_name TO user_name;
Run Code Online (Sandbox Code Playgroud)