使用   "revoke 系统权限 from 用户"  可以删除一个用户的系统权限,一般来说,dba当然可以删除他赋给其他用户的某个系统权限,但是我看书上说任何具有admin option系统权限的人都可以删除其他用户的系统权限,这样一来的话,2个dba不是可以互相乱删对方的系统权限?

解决方案 »

  1.   

    角色授权跟系统授权是不同的体系,dba是一种角色,授予这种角色就拥有定义好的权限,你可以回收一个用户的角色,或者改变这个角色的权限定义;但是如果一个用户的某一权限是因为他是某个角色而导致的,那么这种权限是不可以单独收回的。
      

  2.   

    你没明白我说的意思,我们现在抛开角色不谈,只说系统权限,如果一个用户a赋予用户b和用户c “***”的权限,同时让他们都拥有将此权限赋予他人的权利,那么除了用户a能删除用户b的这个权限以外用户c是不是也可以删除用户b的“***”权限啊?
      

  3.   

    跟据楼主的实例,用户C确实可以删除用户B所拥的有"***"权限.在ORACLE10G中,只要用户拥有某个系统权限(单独授予)并对该权限拥有管理权限(WITH ADMIN OPTION)的话,那么该用户就可从任何用户处回收该系统权限(单独授予).
      

  4.   

    对,如果使用with admin option的话,是可以收回权限的,而且不会发生级联。
    这一点跟使用with grant option赋予对象权限有所不同。
      

  5.   

    仅就系统权限是这样的,能够授予的都可以收对应的回系统权限。
    但是,比如:
    a、b为两个用户,定义角色test,让角色拥有create user的权限,然后grant test to a;
    revoke select on b.emp是不可以的。
    还有就是dba角色跟sysdba是有区别的。
      

  6.   

    打错了是revoke create user from a;