下面这个是我写的一个包:
CREATE OR REPLACE PACKAGE test.pkg_test IS type mycursor IS ref CURSOR;
  PROCEDURE get_dec_bill_list(cur_out OUT mycursor);
END;
CREATE OR REPLACE PACKAGE BODY test.pkg_test IS PROCEDURE get_dec_bill_list(cur_out OUT mycursor) AS
  BEGIN
    OPEN cur_out FOR
    SELECT *
    FROM student;
  END;
END;
如果用system用户,可以完成创建,但是我用自己建的一个用户ttt,则提示 ORA-01031权限不足,下面是我创建这个用户的代码
create user ttt identified by 123; 
grant connect ,resource to ttt;
我根据网上其它朋友提供的代码:grant resource  to ttt; 这也还是不行啊。
有其他方法吗?

解决方案 »

  1.   

    赋予user用户connect角色和resource角色:
    grant connect,resource to user;
    运行成功后用户包括的权限:
    CONNECT角色: --是授予最终用户的典型权利,最基本的
      ALTER SESSION --修改会话
      CREATE CLUSTER --建立聚簇
      CREATE DATABASE LINK --建立数据库链接
      CREATE SEQUENCE --建立序列
      CREATE SESSION --建立会话
      CREATE SYNONYM --建立同义词
      CREATE VIEW --建立视图
    RESOURCE角色: --是授予开发人员的
      CREATE CLUSTER --建立聚簇
      CREATE PROCEDURE --建立过程
      CREATE SEQUENCE --建立序列
      CREATE TABLE --建表
      CREATE TRIGGER --建立触发器
      CREATE TYPE --建立类型
    可惜貌似没有你要的建包的权限哦~~
      

  2.   

    我运行了grant create packages to ttt;也还是不行啊
      

  3.   


    这里是schema的问题,你现在是用用户ttt在用户test下创建package,你需要具有
    CREATE ANY PROCEDURE的系统权限,grant create any procedure to ttt;或者把这个package建在自己的schema下。====================================================================================
    Inthirties关注Oracle数据库 优化,安全,备份,恢复,迁移,故障处理如果你需要帮助或想和我一起学习的请联系
    联系方式QQ:370140387
    QQ群:  85837884(注明:数据库)
    电子邮件:[email protected]
    网站: http://www.inthirties.com