oracle杀死进程时权限不足_如何解决Oracle数据库在迁移过程中的权限不足问题

第一部分

背景

这段时间一直在忙某系统IT基础架构的整合,我负责进行数据库整合,要把一系统迁移集中到另外小机数据库中。环境描述如下:

源数据库:Oracle10.2.0.2 for sap,字符集是UTF8,操作系统是windows2003

目标数据库:Oracle10.2.0.3 RAC,字符集是ZHS16GBK,操作系统是HP-UX11.23

问题描述

源数据库中建立的几个用户权限比较大,都是DBA角色,在迁移到目标数据库中客户要求把权限设成最小权限,最多只给connect和resource角色。用imp在导入后检查导入日志发现,在导入视图时权限不足。

问题解决

以前在8i和9i不错遇到导入视图时权限不足,后来查找connect和resource角色包含的权限,发现没有create view基本权限,而在8i和9i中却包含了create view权限,可能不同版本角色包含的权限也不一定相同。于是再授予create view权限,再次导入视图创建成功。

第二部分

背景

这段时间一直在忙某系统IT基础架构的整合,我负责进行数据库整合,要把一系统迁移集中到另外小机数据库中。环境描述如下:

源数据库:Oracle10.2.0.2 for sap,字符集是UTF8,操作系统是windows2003

目标数据库:Oracle10.2.0.3 RAC,字符集是ZHS16GBK,操作系统是HP-UX11.23

问题描述

源数据库中建立的几个用户权限比较大,都是DBA角色,在迁移到目标数据库中客户要求把权限设成最小权限,最多只给connect和resource角色。用imp在导入后检查导入日志发现,在导入触发器时权限不足。

问题解决

后来检查触发器,发现触发器是跨用户建的,也就是在另外一个用户的表上建立了触发器,于是尝试授予select any table权限,但问题依旧。经过查阅相关资料发现:

使用触发器所需的权限

必须具有CREATE TRIGGER系统权限才能在自己拥有的对象上创建触发器。如果对象由另一名用户拥有,就需要那一名用户授予您对该对象的ALTER权限。还有一种办法,拥有权限的用户可以授予您ALTER ANY TABLE或CREATE ANY TRIGGER权限。

虽然您有自己的模式级组件上的定义者权限,但当调用另一个用户拥有的模式级组件时必须执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值