撤销
用于撤销已授予其他用户的权限。
例如,要撤销您授予 Sami 的 select、update、insert 权限,然后给出以下语句。
从 sami 撤销对 emp 的选择、更新、插入;
要撤销授予 public 的 emp 上的 select 语句,请执行以下命令。
从公众中撤销对emp的选择;
要撤销对 ename 列的更新权限以及对 empno 和 ename 列的插入权限,请给出以下撤销语句。
撤销更新,从 sami 插入 emp;
注意:您不能收回列级权限。假设您只想收回对 ename 列的插入权限,那么您必须首先收回整个插入权限,然后授予对 empno 列的权限。
本节介绍撤销用户权限和角色的各个方面,包括以下主题:
撤销系统权限和角色:
您可以使用企业管理器的撤销系统特权/角色对话框或 sql 命令撤销来撤销系统特权和/或角色。
任何具有系统特权或角色的 admin 选项的用户都可以撤销任何其他 DATABASE 用户或角色的特权或角色,授予者不必是最初授予该特权或角色的用户。此外,具有授予任何角色的用户可以撤销任何角色。
以下语句从 tsmith 撤消 create table SYSTEM PRIVILEGE和 accts_rec 角色:
sql>revoke create table, accts_rec from tsmith;
撤销对象权限和角色:
您可以使用企业管理器或 sql 命令 revoke 撤销对象权限。
要撤销对象特权,撤销者必须是被撤销对象特权的原始授予者。
例如,假设您是原始授权人,要撤销用户 jfee 和 tsmith 对 emp 表的选择和插入权限,您将发出以下语句:
Sql>revoke select, insert on emp from jfee, tsmith;
以下语句从表 dept 撤销所有特权(最初授予角色 human_resource):
Sql>revoke all on dept from human_resources;
撤销列选择性对象权限:
尽管用户可以授予表和视图的列选择性插入、更新和引用权限,但他们不能使用类似的 revoke 语句选择性地撤销特定于列的权限。相反,授予者必须首先撤销表或视图的所有列的对象特权,然后有选择地重新授予应该保留的列特定特权。
例如,假设角色 human_resources 已被授予对表 dept 的 deptno 和 dname 列的更新权限。要仅撤销对 deptno 列的更新权限,您将发出以下两个语句:
Sql>revoke update on dept from human_resources; Sql>grant update (dname) on dept to human_resources;
revoke 语句从角色 human_resources 撤消对 dept 表的所有列的更新权限。grant 语句将 dname 列的更新权限重新授予角色 human_resources。
原文标题:Revoking user privileges and roles - Oracle DBA
原文链接:https://mindmajix.com/oracle-dba/revoking-user-privileges-roles




