在你的程序中加多一个权限,在过程动态创建对象角色起不到作用
...
varSqlCreate := 'grant create any table to ' + aUSER_NAME;
execute immediate varSqlCreate;

解决方案 »

  1.   

    在statio中找create table等权限(不是角色)
    加上就该行了
    创建用户我没用过
    不知行不行
      

  2.   

    不好意思,不够详细。我想在过程中创建一个用户。
    p_make_user中只有如下代码:
    -------------------------
    varSqlCreate := 'create user abc identified by ok default tablespace users temporary tablespace temp';
      execute immediate varSqlCreate;
    -------------------------
    sqlplus 中:
     begin
     p_make_user();
     end;
    ORA-01031: 权限不足
    ORA-06512: ZHMIS.P_MAKE_USER", line 9
    ORA-06512: line 2
    ----------
    如果把创建用户的代码单独拿出来,是可以创建的。同样创建表也是在sqlplus里面可以,但是在过程中就不行。
      

  3.   

    为当前所建过程用户多加一个权限:
    grant create any user to 当前用户;
      

  4.   

    需要以下步骤
    1. CREATE USER username IDENTITIED BY password;
    2. ALTER USER username DEFAULT TABLESPACE USR;(optional)
    3.GRANT CREATE TABLE,CREATE SESSION to username;
    4. ALTER USER username QUOTA UNLIMITED to USR;(very important)
    5.CREATE TABLE tmp (...)
    这样的话你就可以创建表了
      

  5.   

    你本身这个用户就没有创建用户的权限,创建存储过程做什么用呢,
    先让你的DBA给你创建用户的权限吧。然后你就可以将这个权限转给别的你要创建的用户身上。
      

  6.   

    没有给用户授权啊grant DBA to user_name
    或者
    具体到某一个权限也可以
    grant create any table to user_name