当前位置:Gxlcms > 数据库问题 > Oracle执行存储过程报错——ora-01031:权限不足

Oracle执行存储过程报错——ora-01031:权限不足

时间:2021-07-01 10:21:17 帮助过:25人阅读

or replace procedure CREATE_TABLE(CREATE_SQL VARCHAR2) IS BEGIN EXECUTE IMMEDIATE CREATE_SQL; --‘CREATE TABLE T_CREATE_TABLE_1(COLUMN_1 VARCHAR2(50))‘ end CREATE_TABLE;

当执行该语句时,提示 ORA-01031: 权限不足。该用户已赋予DBA权限。

原因:CREATE TABLE想使用CREATE ANY TABLE权限,而CREATE ANY TABLE权限来自DBA角色,默认情况下,虽然在会话环境中可见,但在存储过程中不可见(无效)。

即:ORACLE默认为定义者权限,定义者权限在存储过程中ROLE无效,需要显式授权

GRANT CREATE ANY TABLE TO shfdfm
shfdfm:用户名

Oracle执行存储过程报错——ora-01031:权限不足

标签:情况   nbsp   begin   varchar   end   replace   dia   RoCE   dml   

人气教程排行