Oracle-数据库组件invalid问题处理
前言:
近期处理了一起Oracle数据库组件出现大量invalid的问题,分析发现是由于一些系统包的public公共用户权限丢失导致,相关的组件用户无法方法这些系统包,致使数据库组件大量出现invalid的问题。
问题:
数据库组件出现状态大量的invalid
问题分析:
查询组件用户的失效对象数量
select owner,status,count(*) from dba_objects where status='INVALID' and owner in ('LBACSYS','OLAPSYS','CTXSYS','WMSYS','XDB','MDSYS')group by owner,status;
可以发现出现组件用户出现大量的失效对象
查看失效对象编译的错误原因
set linesize 200
set pagesize 10000
col owner for a10
col name for a20
col text for a100
select owner,name,line,text
from dba_errors
where owner in ('LBACSYS','OLAPSYS','CTXSYS','WMSYS','XDB','MDSYS')
order by owner,name,line;
可以发现,错误大部分都是调用包出现未声明的情况,这些包DBMS_SQL,DBMS_SCHEDULER,UTL_FILE都是数据库自带的一些包,而现在出现调用未声明的情况,说明组件的相关用户没有权限是调用这些包
而调用这些包的权限,通常都是通过授予public公共用户,从而使相关组件用户有权限进行调用的,所以,我们获取了当前环境的public对象的execute权限与组件正常环境权限进行了比对
set linesize 400
set pagesize 400
col privilege for a20
col owner for a20
select grantee,PRIVILEGE,owner,table_name
from dba_tab_privs
where grantee='PUBLIC' and PRIVILEGE='EXECUTE';
发现了以下包权限存在丢失的情况,而这些对象跟之前包编译报错的包是一致的
EXECUTE ON DBMS_LOB TO public ;
EXECUTE ON UTL_TCP TO public ;
EXECUTE ON UTL_HTTP TO public ;
EXECUTE ON DBMS_SQL TO public ;
EXECUTE ON UTL_FILE TO public ;
EXECUTE ON DBMS_XMLGEN TO public ;
EXECUTE ON UTL_SMTP TO public ;
EXECUTE ON DBMS_JOB TO public ;
EXECUTE ON DBMS_SCHEDULER TO public ;
SELECT ON ALL_USERS TO public;
问题原因:
数据库组件出现大量invalid的问题,是由于一些系统包的public公共用户权限丢失导致,相关的组件用户无法方法这些系统包,致使数据库组件大量出现invalid的问题。
问题修复:
对丢失的权限重新进行授权,并重新进行数据库组件编译
---权限授权
GRANT EXECUTE ON DBMS_LOB TO public ;
GRANT EXECUTE ON UTL_TCP TO public ;
GRANT EXECUTE ON UTL_HTTP TO public ;
GRANT EXECUTE ON DBMS_SQL TO public ;
GRANT EXECUTE ON UTL_FILE TO public ;
GRANT EXECUTE ON DBMS_XMLGEN TO public ;
GRANT EXECUTE ON UTL_SMTP TO public ;
GRANT EXECUTE ON DBMS_JOB TO public ;
GRANT EXECUTE ON DBMS_SCHEDULER TO public ;
GRANT SELECT ON ALL_USERS TO public;
---重新编译
@?/rdbms/admin/utlrp
组件状态重新变为valid
set linesize 200
Col Comp_name Format a40
col schema for a20
com comp_id for a20
Col Status Format a12
Select comp_id,Comp_name, status, Version,schema
From Dba_Registry
Order by Comp_name;
其他问题:
对于public公共用户权限为何会出现丢失?
可能是以下原因导致
1 在数据库升级迁移的过程中public权限没有跟随迁移,导致丢失
2 用户在进行数据库安全改造的过程中,回收了public权限
Oracle-数据库组件invalid问题处理相关推荐
- oracle数据库各组件介绍,Oracle 数据库 组件相关说明【第一部分】
参考MOS文档: Information On Installed Database Components and Schemas (文档 ID 472937.1) Oracle 组件可以通过下面的S ...
- Navicat连接Oracle数据库以及Oracle library is not loaded的解决方法
场景 打开Navicat-文件-新建连接-Oracle 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书. ...
- java olap oracle_【案例】Oracle数据库升级OLAP组件异常 删除OLAP组件
天萃荷净 Oracle研究中心案例分析:在升级完一套Oracle数据库后发现OLAP组件出现异常,详细记录如何删除OLAP组件的过程. 本站文章除注明转载外,均为本站原创: 转载自love wife ...
- Navicat连接Oracle数据库失败,提示无效的用户名和密码(Invalid username and password)
1.Navicat是一款非常好用的数据库管理工具,可是一段时间没有使用,突然发现之前建立的Oracle连接无法打开,提示要输入旧密码和新密码以及确认新密码,在Navicat管理工具中连接之前超过180 ...
- 数据字典在sga的哪一个组件中缓存_【赵强老师】Oracle数据库的内存结构
首先,我们通过一张图片来了解一下Oracle数据库的内存结构,如下: 每个数据库实例有两个关联的内存结构-系统全局区(SGA),程序全局区(PGA). 系统全局(SGA):一组共享的内存结构(称为SG ...
- oracle11g数据库登录01017,sqlplus登录Oracle时ORA-01017: invalid username/password; logon denied的错误...
今天用scott用户登录Oracle数据库时,竟然出现了ORA-01017: invalid username/password; logon denied错误,原以为是因为我的scott用户没有解锁 ...
- oracle 连接组件,[2021] node连接oracle数据库示例[使用oracle官方组件]
[2021] node连接oracle数据库示例[使用oracle官方组件] node 连接 oracle 示例 本示例采用的 oracledb 和 instantclient-basic-windo ...
- bde怎么配置oracle数据库,Oracle数据访问组件ODAC教程:如何从BDE和DOA迁移
ODAC(Oracle Data Access Components )是一个Oracle数据访问组件.ODAC可以为Oracle提供本地连接(Delphi, Delphi for .NET, C++ ...
- SpringBoot连接Oracle数据库报ORA-01017: invalid username/password; logon denied
目录 一.报错如下图: 二.lz的环境版本 三.解决方式 四.lz报错的原因 一.报错如下图: 问题描述 lz用sqlplus或者navicat客户端连接oracle数据库正常连接,但是在项目中运行一 ...
最新文章
- 数据中心的未来:一体化无人值守
- iOS设计模式(03):工厂方法
- QEMU 网络虚拟化
- HDU2602 (0-1背包)
- [vue] 有在vue中使用过echarts吗?踩过哪些坑?如何解决的?
- 简洁又快速地处理集合——Java8 Stream(下)
- 洛谷P1279 字串距离 (动态规划)
- java ee是什么_死磕 java集合之HashSet源码分析
- esp mounter pro_对比 | 以大欺小?剑指宋Pro和哈弗H6,欧尚X7的黑马潜质从何而来?...
- ARM CORTEX-M0 权威指南 英文
- Mac删除Windows10后空间丢失解决
- 区块链入门教程,这一篇就足够了
- ojdbc6不能使用的解决办法
- 番茄花园xp开机音乐_抱歉,Windows XP的开机音乐骗了你20年
- matlab仿真AMI码变换,matlab编程
- 计算机表格外边框颜色怎么设置,#表格外部框线设置颜色#如何把excel里所有边框颜色改变...
- 玩数字域名投资有风险吗 风险与机遇并存
- vue-element-admin基础学习
- 第七章集合与字典作业
- G.7xx的音频编码方式与带宽计算
热门文章
- 3.5mm耳机喇叭和麦克接头差异
- [转]花了500学的seo课程教程笔记公布
- Python 爬虫 中国行政区划信息爬取 (初学者)
- 近3千多道小学语数英知识题ACCESS数据库
- node+express 搭建商城项目(2-建立 Mysql链接 完成注册账号接口)
- 出行者信息服务器,出行者信息服务系统解析.ppt
- 自然语言处理(NLP)发展历程(1),什么是自然语言处理?
- 联想服务器改为win7系统,联想电脑怎么把Win10系统改为win7系统?
- 大三期末前端页面开发论文
- 自媒体注意了:借着315今日头条关闭了一批头条号账号