O2OA的数据库数据库配置-使用不同用户访问Oracle时报错-表或视图不存在

在使用Oracle数据库时,多个O2OA服务器同一个Oracle实例中使用不同的用户启动时,可能会遇到数据库访问的错误。本篇阐述此类问题以及解决方案。

一、先决条件:

1、O2OA已经下载并且解压到指定的目录;

2、Oracle数据库已经完成安装,并且已经创建数据库实例和不同的数据库用户。

二、问题描述

在同一个Oracel数据库实例中建立两个不同的用户,如:usera,userb。我们使用两个独立的O2OA服务器分别使用usera和userb连接到数据库。

我们会发现:先启动的o2server能够正常完成服务器启动,但是后启动o2server在控制台会出现如下图所示报错:

table_not_exists.png

三、问题分析

由于usera和userb都具有dba的权限,在服务器启动的时候会先通过DatabaseMetaData对象来判断需要访问的数据表或者视图是否存在,如果不存在,则主动创建相关的数据库对象。由于具有数据库用户拥有dba权限,所以可以查询到指定的数据表已经存在(已经在第一个o2server服务器启动时由usera创建过了)。但是在访问过程中由usera创建的对象,并不在userb用户能访问的Schema下,所以定义在userb用户schema下的数据库对象实际上是不存在的。

因此会导致使用userb数据库用户启动O2OA时,跳过了数据表创建的过程而报错:表或视图不存在。

四、解决办法

删除O2OA使用的数据库用户的dba权限,并为usera,userb设置以下权限.

GRANT RESOURCE TO USERA;
GRANT CONNECT TO USERA;
GRANT UNLIMITED TABLESPACE TO USERA;
GRANT CREATE SESSION TO USERA;
GRANT CREATE TABLE TO USERA;GRANT RESOURCE TO USERB;
GRANT CONNECT TO USERB;
GRANT UNLIMITED TABLESPACE TO USERB;
GRANT CREATE SESSION TO USERB;
GRANT CREATE TABLE TO USERB;

这样就可以避免不同的用户相互看到数据库对象,从而实现对象的隔离。

五、实际需要的角色和权限

需要的角色:CONNECT、RESOURCE,如下图所示:

role.png

需要的权限:CREATESESSION、CREATETABLE、UNLIMITED TABLESPACE,如下图所示:

permission.png

logo_all@1.5x.png

以上问题解决的方法,希望对您有帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

90 Realistic Arctic Environment Textures snow(90+种逼真的北极环境纹理--雪、冰及更多)

一组90多个逼真的雪、冰、雪地岩石和其他被雪覆盖的地面纹理,供在雪地环境中使用。每个纹理都是可贴的/无缝的,并且完全兼容各种不同的场景--标准的Unity地形、Unity标准着色器、URP、HDRP等等都兼容。 所有的纹理都是4096x4096,并包括一个HDRP掩码,以完全支持HDRP。 特点。…

X86+FPGA, NXP+FPGA:工控稳“固”之选 赋能CPCI/VPX智能轨交新变革

工业IPC在目前大时代背景下面临机遇,但挑战同样也不少。在轨道交通领域,工控机必须具备高可靠性和稳定性,能够在复杂且严苛的工作环境中长时间无故障运行;需要满足严格的实时性和响应性能要求,确保能够迅速准确地处理传感器信号和…

在 Vue 中使用 structuredClone 进行深拷贝来初始化对象内的数组

在 Vue 中使用 structuredClone 进行深拷贝来初始化对象内的数组 一、引言1.什么是深拷贝?2.为什么使用 structuredClone?3.示例代码4.详细解释5.兼容性注意事项 二、总结 一、引言 在前端开发中,处理复杂对象和数组时,深拷贝是一…

椭圆的几何要素

椭圆的几何要素 flyfish 椭圆的方程为 x 2 a 2 y 2 b 2 1 \frac{x^2}{a^2} \frac{y^2}{b^2} 1 a2x2​b2y2​1。 长半轴 a a a(绿色虚线)和短半轴 b b b(紫色虚线)。 焦点 F 1 ( − c , 0 ) F1(-c, 0) F1(−c,0)&#…

冒泡排序Java详细注释版

冒泡排序源代码,带有详细注释,希望可以帮助到大家,有用的话点个赞和收藏吧,感谢大家的阅读,Java小白一直在努力,承蒙大神们的厚爱。 定义 在程序设计语言中,排序算法主要有冒泡排序、快速排序、…

低代码开发:加速工业数智化转型发展

引言 在当今全球经济一体化和信息化的深度融合的大环境下,工业数智化转型已经成为推动制造业高质量发展的关键因素。这一转型不仅涉及生产过程的智能化、网络化,还涉及到企业管理、市场服务等全方位的数字化升级,其最终目标是为了实现更高效能…

暴雨讲堂|通往AGI的必由之路—AI agent是什么?

在三月份英伟达的新品发布会上,黄仁勋反复提及一个词汇— Generalist Embodied Agent,意为“通用具身智能体”,给观众留下了深刻的印象。其实具身智能指的是不同形态的拥有主动感知交互能力的机器人。其实,业界对它还有一个更为熟…

python如何安装ta-lib依赖包

在使用pip install ta-lib安装ta-lib库的时候,出现了以下错误信息。本文记录安装成功的整个过程。 解决办法 1、创建虚拟环境 我们使用conda进行创建一个python=3.8版本的虚拟环境 conda create -n python38 python==3.8激活创建好虚拟环境 conda activate python382、安装步…

媒体访谈 | 广告变现痛点有新解,俄罗斯市场成大热门?

今年一季度,中国自主研发游戏在海外市场实际销售收入达到了40.75亿美元,环比和同比均实现了超过5%的增长,出海,仍是游戏产品近些年来最主要的发展模式之一。 当今的市场环境正经历一系列深刻变革,移动游戏广告市场呈现…

python“__main__“的解读

Tutorial Gross tutorial 有些模块包含了仅供脚本使用的代码,比如解析命令行参数或从标准输入获取数据。 如果这样的模块被从不同的模块中导入,例如为了单元测试,脚本代码也会无意中执行。 这就是 if name ‘main’ 代码块的用武之地。除非…

IDEA集成Docker实现快捷部署

本文已收录于专栏 《运维》 目录 背景介绍优势特点操作步骤一、修改Docker配置二、配置Docker插件三、编写Maven插件四、构建Docker镜像五、创建Docker容器 总结提升 背景介绍 在我们手动通过Docker部署项目的时候,都是通过把打包好的jar包放到服务器上并且在服务器…

git提交遇见的<<<<<<<< HEAD无法运行程序问题

在项目文件目录下打开git bash Here 在命令行中输入 git reset --hard HEAD~1 进行复原 git reset --hard HEAD~1 即可

查找程序中隐藏界面的思路

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动 某些程序,它会有管理员界面(比如棋牌游戏,它一般会有一个控制端界面,用来控制发牌、换牌),但是这种界…

【Java】线程池技术(三)ThreadPoolExecutor 状态与运行源码解析

ThreadPoolExecutor 状态 ThreadPoolExecutor 继承了 AbstractExecutorService,并实现了 ExecutorService 接口,用于管理线程。内部使用了原子整型 AtomicInteger ctl 来表示线程池状态和 Worker 数量。前 3 位表示线程池状态,后 29 位表示 …

python代码生成可执行文件

以下面转换图片尺寸的代码resize_images.py为例: 代码功能:原始图片放在img文件夹中,然后运行代码可以转换成指定分辨率,保存在同一目录下的新生成的文件夹中 import os import sys import cv2 from datetime import datetime f…

在React中,如何利用React.memo函数对函数组件进行优化?

React.memo 是 React 的一个高阶组件,用于对函数组件进行性能优化。它通过记忆化(memoization)来避免不必要的重新渲染。当组件的 props 没有变化时,React.memo 可以防止组件重新渲染,从而提高应用的性能。 使用 Reac…

wireshark抓包ssl数据出现ignored unknown record的原因

文章目录 前言一、出现原因二、wireshark抓包分析Ignored Unknown RecordTCP segment of a reassembled PDU 总结 前言 使用下面这个例子来观察记录层数据大于TCP MSS时用wireshark抓包出现ignored unknown record的情况并分析原因。 c语言利用openssl实现简单客户端和服务端&…

【LinuxC语言】sigaction

文章目录 前言功能函数定义struct sigaction 结构体使用示例总结前言 在Linux系统编程中,信号(Signal)是一种重要的进程间通信机制。信号可以用来通知进程发生了某个事件,比如中断、终止、非法内存访问等。处理信号的方式有多种,其中sigaction是一个强大且灵活的函数,用…

Rich Human Feedback for Text-to-Image Generation 读论文笔记

Rich Human Feedback for Text-to-Image Generation 读论文笔记 摘要方法细节收集数据的过程人类反馈确认 数据集VQA使用方法数据分析分数统计评价一致性(pair alignment) 实验模型模型架构模型变体模型其他优化 实验MetricsScoreHeatmapMisalignment 量…

什么是NLP-自然语言处理

什么是NLP-自然语言处理 什么是NLP开通NLP新建项目创建模型 什么是NLP NPL是面向算法小白用户的行业自适应标注、训练和服务平台。该产品支持文本实体抽取、文本分类、关键短语抽取、情感分析、关系抽取、短文本匹配、商品评价解析等 NLP 定制化算法能力,用户无需拥…