仅对表中的一列授予更改
Posted
技术标签:
【中文标题】仅对表中的一列授予更改【英文标题】:Grant alter on only one column in table 【发布时间】:2013-01-22 15:42:07 【问题描述】:我只想授予用户编辑表中的一列的权限。我在这里使用什么命令?我使用oracle 11g 数据库。我已经知道如何仅授予对整个表的读取或删除权限,但是如何仅对一列或更多列执行此操作?请举个例子。
【问题讨论】:
【参考方案1】:例如,您只想授予对 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;
【讨论】:
感谢完美,但我只是觉得它不适用于 select 语句。我提出了另一种观点。这是正确的 你的意思是..无法授予选择权限?好吧,我认为我们也可以授予选择权限,检查编辑 注意:您必须授予对表的 SELECT 权限以及 UPDATE 权限。【参考方案2】:基于this source:
只能在列级别授予INSERT
、UPDATE
和REFERENCES
权限。在列级别授予INSERT
时,必须在行中包含所有非空列。
这是一个例子:
GRANT update (column_name) ON table_name TO user_name;
【讨论】:
以上是关于仅对表中的一列授予更改的主要内容,如果未能解决你的问题,请参考以下文章