被授予references权限后的revoke测试
文档课题:被授予references权限后的revoke测试.
> show user
USER is "ORA1"
> grant references on dept01 to leo;
> grant select on dept01 to leo;
> conn leo/leo@orclpdb;
> select * from user_tab_privs_recd;
OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE COM TYPE INH
--------------- ---------- ---------- -------------------- --- --- --- ---------- ---
ORA1 DEPT01 ORA1 SELECT NO NO NO TABLE NO
ORA1 DEPT01 ORA1 REFERENCES NO NO NO TABLE NO
说明:可以看到用户leo被用户ora1授予select、references权限.
> select * from ora1.dept01;
DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID
------------- ------------------------------ ---------- -----------
10 Administration 200 1700
20 Marketing 201 1800
50 Shipping 124 1500
60 IT 103 1400
80 Sales 149 2500
90 Executive 100 1700
110 Accounting 205 1700
190 Contracting 1700
1011490290 Support 2500
400 support 2500
410 support 2500
11 rows selected.
> create table emp (empid number,department_id number);
> alter table emp add constraint fk_emp_deptid foreign key (department_id) references ora1.dept01;
> select table_name,constraint_name from user_constraints;
TABLE_NAME CONSTRAINT_NAME
--------------- --------------------
EMP FK_EMP_DEPTID
> conn ora1/ora1@orclpdb;
> revoke references on dept01 from leo;
revoke references on dept01 from leo
*
ERROR at line 1:
ORA-01981: CASCADE CONSTRAINTS must be specified to perform this revoke
说明:此时无法revoke references权限,因为用户leo创建了一个引用dept01(department_id)的表emp.
如果非要revoke references权限,需加cascade constraints.
> revoke references on dept01 from leo cascade constraints;
Revoke succeeded.
> conn leo/leo@orclpdb
> select table_name,constraint_name from user_constraints;
no rows selected
说明:revoke references权限后,约束一并被拿掉.
版权声明
本文仅代表作者观点,不代表博信信息网立场。