DBMS_SQL - Falta de Previlegios
Bem o meu problema e que estou querendo criar uma procedure, que execute comandos pl/sql dinamicamentes.Ela esta funcionando mesnos para Create e Drop user sempre me retorna o erro de previlegios insuficientes.Sendo que o usuario e o DBA.
Procedure ExecutaString(cmdSql in Varchar) is
nresult integer;
cCMD integer;
begin
cCMD:=sys.DBMS_SQL.OPEN_CURSOR;
sys.dbms_sql.parse(cCMD,cmdSql,DBMS_SQL.NATIVE);
nresult:=sys.dbms_sql.execute(cCMD);
sys.dbms_sql.close_cursor(cCMD);
end;
Linha de comando da chamada
SQL> exec esquema.nomedopacote.ExecutaString(´DROP USER nomedousuario´);
E este e o erro que ele apresenta.
BEGIN sbdb.lb.ExecutaString(´DROP USER nomedousuario´); END;
*
ERRO na linha 1:
ORA-01031: privilégios insuficientes
ORA-06512: em ´DBMS_SYS_SQL´, line 782
ORA-06512: em ´DBMS_SQL´, line 32
ORA-06512: em ´Esquema.nomedopacote´, line 395
ORA-06512: em line 1
Procedure ExecutaString(cmdSql in Varchar) is
nresult integer;
cCMD integer;
begin
cCMD:=sys.DBMS_SQL.OPEN_CURSOR;
sys.dbms_sql.parse(cCMD,cmdSql,DBMS_SQL.NATIVE);
nresult:=sys.dbms_sql.execute(cCMD);
sys.dbms_sql.close_cursor(cCMD);
end;
Linha de comando da chamada
SQL> exec esquema.nomedopacote.ExecutaString(´DROP USER nomedousuario´);
E este e o erro que ele apresenta.
BEGIN sbdb.lb.ExecutaString(´DROP USER nomedousuario´); END;
*
ERRO na linha 1:
ORA-01031: privilégios insuficientes
ORA-06512: em ´DBMS_SYS_SQL´, line 782
ORA-06512: em ´DBMS_SQL´, line 32
ORA-06512: em ´Esquema.nomedopacote´, line 395
ORA-06512: em line 1
Rogeriorock
Curtidas 0
Respostas
Motta
03/05/2006
O usário DBA de seu banco deve dar grant de drop user para o seu usuario.
GOSTEI 0