【问题标题】:error: ORA-01031: insufficient privileges错误:ORA-01031:权限不足
【发布时间】:2015-07-18 02:50:21
【问题描述】:

我有问题。

CREATE TABLE accounts(
  id INTEGER, 
  name VARCHAR2(100)
)
/

CREATE OR REPLACE FUNCTION account_balance(account_id_in IN accounts.id%TYPE)
RETURN NUMBER
IS
BEGIN
  RETURN 0;
END;
/

错误:

Error starting at line : 1 in command -
CREATE OR REPLACE FUNCTION account_balance(account_id_in IN accounts.id%TYPE)
RETURN NUMBER
IS
BEGIN
  RETURN 0;
END;
Error report -
ORA-01031: insufficient privileges
01031. 00000 -  "insufficient privileges"
*Cause:    An attempt was made to perform a database operation without
           the necessary privileges.
*Action:   Ask your database administrator or designated security
           administrator to grant you the necessary privileges

请帮我解决以上错误,谢谢!

【问题讨论】:

  • 老兄,不存在可接受的答案。
  • 问题很清楚。与 DBA 交谈以获得创建函数的权限。
  • @dovy:你是 DBA 吗?
  • 我相信语法是grant create procedure to your_user 或类似的东西。您可以将your_user 替换为您登录的用户,因为该用户没有所需的权限。确保从具有完全权限的帐户运行此程序。

标签: oracle oracle11g oracle-sqldeveloper


【解决方案1】:

正如 cmets 中所指出的,您缺少从当前使用的任何用户帐户创建函数所需的权限。

假设您的权限较低的登录名为some_user。要解决您的问题,请以您的特权帐户登录,并应用以下 GRANT 语句:

grant create procedure to some_user;

文档:GRANT

CREATE PROCEDURE:在被授权者的架构中创建存储过程、函数和包。

【讨论】:

    【解决方案2】:

    以身份登录

    sys as sysdba
    

    然后将用户名改为你的用户名后执行以下命令

    GRANT CREATE PROCEDURE TO username;
    

    【讨论】:

      猜你喜欢
      • 2014-10-24
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 2019-05-29
      • 1970-01-01
      • 2010-09-13
      相关资源
      最近更新 更多