易截截图软件、单文件、免安装、纯绿色、仅160KB

ORACLE多用户之间共享存储过程

在数据库中,有两个用户usera,userb,如果在b中有个存储过程,需要用a的用户去调用,(比如b是权限很高的用户,而a只是普通用户,为了屏蔽给a最小的权限只能如此)。于是,我就用grant execute on 存储过程名 to usera。这样,在a的用户下面就能看到存储过程了,但是我执行以后,还是报ora-1031,说是没有权限,经过于高手交流,说是需要将存储过程之中涉及的表的查询权限赋值给a。于是我再次进行赋权,但是我的存储过程中的表都是动态生成的,一天一个,而又不想给他any的权限。被逼无奈,又冥思苦想,发现存储过程能够正常的记录日志,就是操作日志表。于是得出结论:如果给另一个用户赋权以后,当它执行存储过程时,就相当于存储过程在自己的用户下执行,不必再给表赋权了,把高手的结论推翻了。但是为什么还有1031的权限问题呢,继续跟踪!发现语句execute immediate语句中有truncate语句,需要清除a不用户的表。而b用户没有drop any table或者a用户表的权限!这次是真正的问题,所在,于是赋权,问题OK。
    结论:存储过程赋权以后,相关的任何表和过程都不用再次赋权。就像语言对外提供的方法一样!
   execute immediate “truncate”语句一定要有删除表的权限!!


相关文档:

传智播客 2010 1 18十七、ORACLE(1)_安装与管理


一、数据库的相关概念
数据库(DB)是一个按数据结构来存储和管理数据的计算机软件系统。
1、数据库管理系统与数据库应用系统
(1)数据库管理系统(Database Management System)
数据库管理系统(DBMS)是专门用于管理数据库的计算机系统软件。数据库管理系统能够为数据库提供数据的定义、建立、维护、查询和统计等操 ......

ORACLE 数据库自动备份脚本

#! /bin/bash
if  [ -f ~/.bashrc ];then
. ~/.bash_profile
fi
export script=/home/oracle/script
export bakdata_destination=/u02/rman_backup/data
export baklog_destination=/u02/rman_backup/log
export datadir=`date +'%Y_%m_%d'`
export days=`date +'%w'`
if ! test -d $script
then
 &nb ......

Oracle Sequence 相关知识

一,简单介绍
    在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按
序列号排序的地方。
1、 create sequence
    你首先要有create sequence或者create any sequence权限,
    create sequence emp_sequence
   &n ......

oracle JOB迁移办法

在系统迁移或升级的时候,可能会有oracle JOB迁移的需求。
对于10G的系统好说。可以用下面的办法:
userid="/ as sysdba"
directory=EXP_DIR
dumpfile=expdp_job.dmp
logfile=expdp_job.log
include=job
对于9i库好象有点复杂:
可以用下面的办法。
set echo on
conn sm ---------->JOB所在的用户名。
set se ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号