使用特权立即执行问题

时间:2019-04-01 16:29:01

标签: oracle plsql oracle11g dynamic-sql

我对包含立即执行的过程有疑问。

我创建一个用户:

CREATE USER NUEVO_USUARIO1 IDENTIFIED BY PASSWORD
   DEFAULT TABLESPACE TRABAJO
   QUOTA 10M ON TRABAJO
   PROFILE ADMINISTRACION;

配置文件管理包含CONNECT和CREATE TABLE特权;

我创建了一个创建表的过程:

CREATE OR REPLACE PROCEDURE NUEVO_USUARIO1.CREADOR(TABLA VARCHAR2,COLUMNA VARCHAR2) AS
BEGIN
   EXECUTE IMMEDIATE 'CREATE TABLE '||TABLA||'('||COLUMNA||')';
END CREADOR;
/

但是当我尝试使用Nuevo_USUARIO1执行Creador时,我似乎没有足够的特权,但是配置文件包含create table。

EXEC CREADOR('HOLA','ADIOS');

有人知道会发生什么吗?

我认为这是行不通的,因为立即执行只能看到用户特权,而不是角色授予的特权,但是我不确定。在那种情况下,我该怎么解决?

0 个答案:

没有答案