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;