撤销PUBLIC某些权限后expdp导出报错“UDE-00018: 数据泵客户机与数据库版本不兼容”的解决方法

oracle数据库被扫描出以下漏洞

UTL_TCP 被授权给 PUBLIC

UTL_HTTP被授权给PUBLIC

UTL_SMTP被授予给PUBLIC

CTX_DOC.MARKUP执行权限被授予public

DBMS_EXPORT_EXTENSION.GETDOMAIN_INDEX_METADATA 执行权限授予public

DBMS_METADATA.GET_DDL 执行权限授予public

DRILOAD.VALIDATE_STMT 执行权限授予public

运维的同事使用以下命令撤销了PUBLIC 的某些权限

revoke execute on UTL_HTTP from PUBLIC;
revoke execute on UTL_TCP from PUBLIC;
revoke execute on UTL_SMTP from PUBLIC;
revoke execute on CTX_DOC from PUBLIC;
revoke execute on DBMS_METADATA from PUBLIC;
revoke execute on CTXSYS.DRILOAD from PUBLIC;

一周后才发现自动备份失效了,手动执行expdp提示 UDE-00018: 数据泵客户机与数据库版本不兼容

原因:PUBLIC是所有角色的集合,撤销PUBLIC的权限时,业务用户和备份用户的权限也被撤销了。而影响导出的权限是DBMS_METADATA

解决方法:给业务和备份用的数据库账号添加被撤销的权限

grant execute on DBMS_METADATA to XXXXXX;

 

你可能感兴趣的:(系统维护)