1.0事件还原:
测试库某个对象,使用具有DBA角色用户导出,生产环境普通用户无法导入数据,因此需要回收测试库dba角色,revoke无法回收

2.0操作流程

回收角色报错

测试环境测试,delete删除基表是否回收角色

实际测试库进行操作

3.0实际操作
3,1回收角色报错信息:
revoke dba from xxx;
ORA-08103: object no longer exists;对象不存在;

--查询对象名称:
select * from dba_users where username='xxx';
发现用户名称,状态Open;

--查询用户拥有的角色:---登陆查询的用户
select * from user_role_privs;

3,2测试 delete删除记录
delete删除DBA角色;
---创建测试用户:
create user a_b identified by a_b;
grant connect to a_b;
查询用户具有的角色;
SQL> select * from user_role_privs;
USERNAME             GRANTED_ROLE         
------------------------------ -----------------------
A_B                            CONNECT

--查询用户ID;
select user#,name from user$ where name='A_B';
  99 A_B
--查询用户低层权限;
select grantee#,privilege#,option$,sequence# from sysauth$,user$ where user$.user#=
grantee# and user$.user#=99;    xx号;
        99          2  ( CONNECT    )   1519

授予第二个角色,再次查询视图记录grant resource to a_b;

        99        -15                  1520
        99          2                  1519
        99          3                  1521
授予第三个DBA角色,再次查询视图记录
grant dba to a_b;
--查询;
        99        -15                  1520
        99          2                  1519
        99          3                  1521
        99          4                  1523
--以上,查询验证了基表的相关记录

--如下,进行delete测试

删除:UID查询,DBA,经测试PRIVILEGE为:4;
delete from sysauth$ where grantee#=  UID and privilege#= xx;
commit;            ---此时发现失误可以回滚:rollback;
--从底层删除角色;
--commit后,如果被回收的用户需要exit,重新登陆才生效;
--如何查询是否验证,回收DBA角色是否生效;
使用视图:select * from user_role_privs;  查询角色
   connect / resource
使用视图:select * from user_sys_privs; 查询用户拥有的系统权限;
--需要关注的是否有:UNLIMITED TABLESPACE (无限使用表空间存储)
--如果没有,需要重新授予:
grant unlimited tablespace to xxx;

验证!!!
使用视图:select * from session_privs;  
    !!!查询的当前会话拥有的权限:如果有DBA,200多,此时回收后查询正常10多项;

-----------------------------------------------------------------题外一:如果用户没有unlimited tablespace--------------------------------------
(指定给予了限额除外:alter user abc quota 38m on users)

SQL> create table t1(id int,name varchar2(20));
SQL> insert into t1 values(1,'aa');
insert into t1 values(1,'aa')
            *
ERROR at line 1:
ORA-01950: no privileges on tablespace 'TS_A'
SQL> show user;
USER is "SCOTT"
SQL> select * from user_sys_privs;
------------------------------ ---------------------------------------- ---
SCOTT                          CREATE VIEW                              NO

SQL> select * from user_role_privs;
------------------------------ ------------------------------ --- --- ---
SCOTT                          CONNECT                        NO  YES NO
SCOTT                          RESOURCE                       NO  YES NO

SQL> conn / as sysdba
SQL> grant unlimited tablespace to scott;
SQL> conn scott/tiger
SQL> select * from user_sys_privs;
USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
SCOTT                          CREATE VIEW                              NO
SCOTT                          UNLIMITED TABLESPACE                     NO

*特点一
ADM~代表是否允许联级授予:如果需要的话:
grant unlimited tablespace to scott with admin option;
*特点二、unlimited tablespace这个权限是在授予resource角色附带的;
此次情况是授予了DBA角色,然后回收,附带也把这个权限回收了;

3.3测试库进行delete操作

delete from sysauth$ where grantee#=233 and privilege#=4;

commit;

一次delete基表回收DBA权限的危险性操作的更多相关文章

  1. 关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1

    关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1 ORACLE公司来培训BIEE,带了一个DEMO的DMP文件,其导出用户DBO具有DBA权限,缺省表 ...

  2. 【Oracle】查看哪些用户被授予了DBA权限

    查看哪些用户被授予了DBA权限 select * from dba_role_privs where granted_role='DBA'; 回收权限: revoke dba from xxx;

  3. REVOKE DBA权限要小心

      REVOKE DBA权限要小心 转载:http://blog.csdn.net/lwei_998/article/details/6133557 发现某些用户有DBA权限的时候,为了安全,一般我们 ...

  4. 创建表空间、新增用户、给用户赋予DBA权限 、删除用户下的上有数据表

    正文原创 一:查询数据库实例有多少用户: [oracle@localhost ~]$ sqlplus / as sysdba; SQL*Plus: Release 11.2.0.3.0 Product ...

  5. plsql developer 使用sys用户登录,报ORA-01031权限不足,解决sys(dba权限用户)远程登录报错。

    数据库服务器架设在机器A上,此时我在机器B上进行远程连接,使用sys账号远程登录时报ORA-01031:insufficient privileges 或 ORA-01017: invalid use ...

  6. MSSQL DBA权限获取WEBSHELL的过程

    前言 本文主要通过一个案例来演示一下当MSSQL是DBA权限,且不知道路径的时候如何去获取WEBSHELL.当然这种方式对站库分离的无效.我测试的环境是在Win7 64位下,数据库是SQLServer ...

  7. 删除oracle数据库用户的dba权限(当出现同一用户DBA可以登录,normal不能登录)“无法对SYS拥有的对象创建触发器”

    系统报错:“无法对SYS拥有的对象创建触发器”,搞不懂是什么原因了,到底这触发器要用什么用户才能建立啊? ORA-04089: 无法对 SYS 拥有的对象创建触发器 第一种方式: 首先,用sys用户a ...

  8. MYSQL权限表user操作

        MYSQL权限表user cmd中进人mysql找到mysql安装目录     E:\wamp\bin\mysql\mysql5.6.12\bin>mysql.exe -u 用户名  - ...

  9. win10 你没有足够的权限执行此操作。

      win10 你没有足够的权限执行此操作. CreateTime--2018年4月21日08:21:31 Author:Marydon 鼠标悬浮到windows图标上,右键-->选择:以命令提 ...

随机推荐

  1. python 打包成tar包

    def make_targz(output_filename, source_dir): with tarfile.open(output_filename, "w:gz") as ...

  2. testNG 学习笔记 Day 3 常用的断言

    TestNG中最常用的一个断言类是Assert.java,里面有多个静态方法,这个类我们习惯叫硬断言.对应的还有一个软断言的类,叫SoftAssert.java,这个类是需要创建实例对象,才能调用相关 ...

  3. ngIf 和 template的结合使用

    前提: 当遇到 一个种情况,一个元素中既可以显示 一个字符串变量,也可以显示一个模板 实现: // html <span class="ant-alert-message" ...

  4. robot 批处理文件

    robot自带的ride工具不好用,就像填表格似的写脚本,太拘束.所以一直在用sublime text写robot脚本,但是也有问题:用sublime text写的脚本,只能运行一个文件的case,并 ...

  5. SpringBoot导入excle文件数据

    本文主要描述,Springboot框架下上传excel,处理里面相关数据做逻辑分析,由于用到的是前后端分离技术,这里记录的主要是后端java部分,通过与前端接口进行对接实现功能 1.在pom.xml文 ...

  6. 20170814xlVBA部分代号收盘价转置

    原始数据: 转置效果: Sub TransformData() Dim Rng As Range Dim Arr As Variant Dim Dic As Object Dim dCode As O ...

  7. Android 列表使用(ListView GridView Gallery图片计时滚动)

    ListView 作用: 1.将数据填充到布局. 2.处理用户的选择点击等操作. 根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAd ...

  8. hdu 6299 Balanced Sequence (括号序列,贪心)

    大意: 记$f(t)$表示字符串$t$的最长括号匹配子序列, 给定n个括号序列, 求它们重排后的最大f(t). 首先可以注意到一个括号序列中已经匹配的可以直接消去, 一定不会影响最优解. 那么这样最终 ...

  9. Freemaker FTL指令常用标签及语法

    https://blog.csdn.net/pengpengpeng85/article/details/52070602 FTL指令常用标签及语法 注意:使用freemaker,要求所有标签必须闭合 ...

  10. 深入理解MyBatis中的一级缓存与二级缓存

    http://blog.csdn.net/weixin_36380516/article/details/73194758   先说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据放入缓 ...