oracle 授予存储过程创表权限
2016-07-19 11:16
344 查看
数据库当前用户授予了connect、resource权限,在存储过程里面执行execute immediate 'create table XX'时会报“权限不足”的错误。此时觉得很奇怪,resource角色是具有create table的权限的,为什么在存储过程里面创建表就权限不足了。
查了资料,原因为:用户拥有的角色role在存储过程里面不可用。 一般有如下两种解决方法:
1.显示的给当前用户授权:grant create table to user;
但是如果存储过程里面如果需要用到其他的权限,那也要显示授予,这种方式就比较麻烦了。
2.创建存错过程的时候加上 authid current_user,如:create or replace procedure xx authid current_user is;
如此,存储过程中就可以用到当前用户具有的角色的权限了。相对于第一种方式来说,这种方法比较方便易用。
查了资料,原因为:用户拥有的角色role在存储过程里面不可用。 一般有如下两种解决方法:
1.显示的给当前用户授权:grant create table to user;
但是如果存储过程里面如果需要用到其他的权限,那也要显示授予,这种方式就比较麻烦了。
2.创建存错过程的时候加上 authid current_user,如:create or replace procedure xx authid current_user is;
如此,存储过程中就可以用到当前用户具有的角色的权限了。相对于第一种方式来说,这种方法比较方便易用。
相关文章推荐
- oracle 用户被锁 怎么办
- oracle 常用参数
- oracle 替换所有文字中的不匹配字符
- oracle 设置登录不区分大小写
- oracle 新建表空间
- ASP.NET连接Oracle
- Oracle ORA-12519: TNS:no appropriate service handler found 解决
- oracle 恢复删除的表数据
- Oracle中使用REGEXP_SUBSTR,regexp_replace,wm_concat函数
- oracle 笔记2 退出与删除用户
- oracle笔记1-创建用户登录赋权
- oracle database的监听配置
- 批量 删除 oracle sql传入list
- oracle 分析函数和开窗函数 ROW_NUMBER() OVER(PARTITION BY.....)
- Oracle Spatial空间类型
- oracle 恢复被覆盖的存储过程
- oracle函数-cast
- Oracle查看数据库与数据库监听启动状态
- Oracle修改数据库连接数
- Oracle数据库常用操作sql语句