当我们在回收权限的时候,我们要分清楚回收的是系统权限还是对象权限,这两者在回收的时候不一样的。系统权限的回收时,经过传递获得权限的用户不受影响,如:用户A把系统权限a授予用户B,用户B又把系统权限a授予用户C,用户C又把系统权限a授予用户D,那么删除用户B或回收用户B的系统权限a,不会影响C和D对系统权限a的使用。对象权限回收时,经过传递获得权限的用户会受影响,如:用户A把对象权限a授予用户B,用户B又把对象权限a授予用户C,用户C又把对象权限a授予用户D,那么删除用户B或回收用户B的对象权限a后,用户C和D将不能使用对象权限a,并且与对象权限a所对应的对象也将无效。从你的问题来看,对具体表(表1)的修改操作是对象权限,所以要想回收用户N对表1的修改操作权限,有两种方式:1.直接回收用户A所授予的下一级用户的对象权限,但这样会影响后续所有的权限传递的用户或角色。2.使用授予用户N此对象权限的用户登录,再回收用户N的对象权限,这样不会影响前边的权限传递。这是我的理解。
山海关ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
查询sys用户直接赋予用户icdpub的权限: select * from dba_sys_privs t where t.grantee='ICDPUB';查询用户通过role赋权所得到的权限: SELECT * FROM DBA_ROLE_PRIVS T WHERE T.grantee='ICDPUB'; 收回用户的权限:revoke create table from icdpub; 收回用户的角色:revoke icdpub_role from icdpub;
要看你所说的回收用户是怎么回收。
(1)将用户锁起来。相当于回收,就算有密码也没办法应用。alter user *** account lock.
(2)回收用户的权限。把用户的连接权限等统统回收。这样的话使用revoke.
(3)删除用户,这个是drop,不过这个操作最好不要做,因为可能有很多关联问题产生。
(4)如果是针对某个人回收,用户,那只能是修改密码,然后不告诉他。或者限制主机登录,不过意义都不大。
回收只用最后一个就行了
而且要用你的sysdba用户回收,而且你语法也错了
revoke dba from wiki
我教你一种方法,运用拼字符串拼出脚本,比如下面这个
select 'revoke connect from '|| username||';' from dba_users;
你查询一下,结果显示为:
revoke connect from SYS;
revoke connect from SYSTEM;
revoke connect from TEST;
revoke connect from OUTLN;
revoke connect from MGMT_VIEW;
revoke connect from MDSYS;
revoke connect from ORDSYS;
把你查询出的结果复制出来运行,就批量撤销权限了,
当然因为不知道你的用户和你的具体权限。所以你进行适当的修改select 'revoke connect from '|| username||';' from dba_users;这条sql语句,然后运行,把结构查询出来执行就可以了