授予和撤销系统权限

2023年 11月 18日 76.6k 0

一、授予和撤销系统权限:
  1. DBA 将CREATE TABLE 系统权限连同ADMIN OPTION 授予U01。
SQL> create user u01 identified by oracle default tablespace users quota 10m on users;
SQL> grant connect to u01;
SQL> grant create table to u01 with admin option;
  2. U01 创建一个表。
SQL> create table a(id number);
  3. U01 将CREATE TABLE 系统权限授予U02。
SYS:
SQL> create user u02 identified by oracle default tablespace users quota 10m on users;
SQL> grant connect to u02;
U01:
SQL> grant create table to u02;
  4. U02 创建一个表。
SQL> create table b(id number);
  5. DBA 撤销U01 的CREATE TABLE 系统权限。
   SQL> revoke create table from u01;
结果
  U01 的表仍然存在,但是他不能创建新表。
SQL> create table c(id number);
create table c(id number)
*
ERROR at line 1:
ORA-01031: insufficient privileges

SQL> desc a;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER

  U02 的表仍然存在,而且她仍然具有CREATE TABLE 系统权限。
SQL> create table c(id number);

二、授予和撤销对象权限:
  1. U01 被授予关于EMPLOYEES 的SELECT 对象权限连同GRANT OPTION。
SQL> grant select on scott.emp to u01 with grant option;
  2. U01 将关于EMPLOYEES 的SELECT 权限授予U02。
SQL> grant select on scott.emp to u02;
SQL> desc scott.emp;
Name Null? Type
----------------------------------------- -------- ----------------------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
  3. 随后,撤销U01 的SELECT 权限。这个撤销操作会同时对U02 产生级联影响。
SQL> conn / as sysdba
SQL> revoke select on scott.emp from u01;
SQL> desc scott.emp;
ERROR:
ORA-04043: object scott.emp does not exist

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论