网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  在存储过程中拥有"role"权限的特殊性     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:118次  录入:管理员--2008-03-17  
 

【赛迪网-it技术报道】在oracle数据库中,用户拥有的role权限在存储过程是不可以使用的。

示例如下:

sql> select * from dba_role_privs where grantee='test';

grantee granted_role admin_option default_role
------------ ------------ ------------ ------------
test dba no yes

--用户拥有dba这个role

--再创建一个测试存储过程:
create or replace procedure p_create_table 
is
begin
execute immediate 'create table create_table(id int)';
end p_create_table;

--然后测试
sql> exec p_create_table;

begin p_create_table; end;

ora-01031: 权限不足
ora-06512: 在"test.p_create_table", line 3
ora-06512: 在line 1

--大家可以看到,即使拥有dba role,也不能创建表。role在存储过程中不可用。

--遇到这种情况,我们一般需要显式进行系统权限,如grant create table to test;

--但这种方法太麻烦,有时候可能需要进行非常多的授权才能执行存储过程

--实际上,oracle给我们提供了在存储过程中使用role权限的方法:

--修改存储过程,加入authid current_user时存储过程可以使用role权限。

create or replace procedure p_create_table 
authid current_user is
begin
execute immediate 'create table create_table(id int)';
end p_create_table;

--再尝试执行:
sql> exec p_create_table;

pl/sql procedure successfully completed

 
 
上一篇: 教你快速掌握一个简单的oracle定时任务    下一篇: 带你轻松掌握行分链与行迁移的相关概念
  相关文档
oracle与data guard环境中重建控制文件 (1) 03-27
讲解sql与oracle外键约束中的级联删除 05-29
Oracle数据库中如何改善表空间的管理 04-11
Oracle Online Redo LogFile 09-29
Oracle 9i应用COMPOSE和UNISTR创建沉音 07-07
超大型oracle数据库应用系统的设计方法 (1) 05-04
处处设防 数据库安全性策略详细介绍 04-11
讲解oracle系统中用户权限的赋予和查看 04-23
oracle-decode()函数和case语句有哪些不同 04-15
详细讲解oracle i/o子系统的配置和设计 (1) 04-30
实例解析:怎样获得当前 数据库的scn值 11-15
Java连接Oracle数据库的各种方法 04-23
哪些因素可以影响oracle数据库的性能 03-11
轻松六步使你的Oracle存储过程迅速加密 05-27
oracle的共享封锁 独占封锁和共享更新封锁 (1) 05-28
教你快速掌握如何使用"opatch"打补丁 03-10
讲解"oracle"下导出某用户所有表的方法 02-02
详细讲解oracle数据库后台进程的具体功能 (1) 04-28
oracle数据库环境下数据文件丢失的恢复 07-25
实例讲解oracle监听口令及监听器安全 03-06
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息