oracle用存储过程创建序列时权限不足问题
2018-01-31 18:12
519 查看
oracle用存储过程创建序列时权限不足问题
描述:尝试用存储过程动态创建序列时,execute immediate里封装的创建语句会报权限不足的问题,但是直接在PLSQL里执行创建语句不会报这个问题,查找解决方法时发现,原来是在存储过程中ROLE无效,需要显式授权,所以这个问题有两种解决方法:
管理员登录,通过授权实现
GRANT CREATE SEQUENCE TO ‘YOUR_USER_NAME’;
修改存储过程,加入authid current_uer时存储过程可以使用role权限。
另附:第二种方法实现的序列生成器
create or replace procedure sp_seq_creater( p_seq_name in varchar2-- 序列号名称 ) authid current_user --赋予role权限 is /* name:【序列生成器、重置器】 notes:根据传入的字符串生成对应名称的序列, ***********注意注意注意*************** 当这个 名称的序列已经存在的时候,会重置序列, 所以要确保传入的序列名: 1.是不存在的 2.或可以重置的 creater:Jerry Wang createTime:2018_0131_1747 */ my_exception exception;-- 自定义异常 begin -- 参数判断 if p_seq_name is null then raise my_exception;-- 参数异常,名称不能为空 end if; -- 尝试删除序列 begin -- 尝试删除序列(如果有) execute immediate 'drop sequence '|| p_seq_name; exception when others then null; end; -- 尝试创建序列号 execute immediate 'create sequence '||p_seq_name||' minvalue 1 maxvalue 9999999999999999999999999999 start with 1 increment by 1 cache 20 order'; end sp_seq_creater;
相关文章推荐
- Oracle创建视图view权限不足问题剖析
- Oracle的存储过程中创建临时表报权限不足问题
- Oracle创建视图view权限不足问题剖析
- oracle 创建其他用户下物化视图 权限不足问题
- ORACLE 创建对象权限不足的问题
- 创建视图报~权限不足~的问题
- oracle 视图权限 oracle 创建视图权限不足( ORA-01031: 权限不足)
- ORACLE 创建视图时,出现权限不足 ORA-01031:权限不足
- Oracle创建视图时提示权限不足的解决办法
- oracle create view 权限不足问题的解决方法
- ORACLE 创建视图时,提示用户权限不足
- ubuntu下无法在根目录创建文件夹;permission denied 权限不足问题解决方法
- Oracle 创建视图view 权限不足,无法创建 解决办法
- 解决Oracle在第一次插入创建的默认序列时,序列值是2的问题
- ORACLE 创建视图时,提示用户权限不足
- ORACLE 创建视图时,提示用户权限不足
- oracle创建数据库最后一步无法创建目录应该是权限问题
- Oracle创建带有自增序列的表和字符串转日期的问题
- ORACLE 创建视图时,提示用户权限不足