我如果直接在PL/SQL DEVELPOER的SQL WINDOW中执行建表的操作没有问题,可是用存储过程建表就报
insufficient privilege.
我是通过动态sql
如
declare
sqlc varchar2(1000);
begin
sqlc := ....; --建表语句
excute immediate sqlc;
end
insufficient privilege.
我是通过动态sql
如
declare
sqlc varchar2(1000);
begin
sqlc := ....; --建表语句
excute immediate sqlc;
end
在存储过程里
grant create table to user;
需要授权,dba也不例外
begin
...
end;
declare
v_grant varchar2(100);
....
begin
v_grant := 'grant create table to user';
excute immediate v_grant;不过这样不行,也是一样的错误。增加authid current_userprocedure p(参数...) authid current_user is
begin
...
end;
你是说在存储过程的第一行改写成你这样?
v_grant := 'grant create table to user';
excute immediate v_grant;
就可以你的user都有什么权限?user需要有grant any privilege权限
grant grant any privilege to user
这个不需要显示授权