---
title: PL 权限不足，错误代码 ORA-00942-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于PL 权限不足，错误代码 ORA-00942相关的常见问题和使用技巧，帮助您快速解决PL 权限不足，错误代码 ORA-00942的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# PL 权限不足，错误代码 ORA-00942

更新时间：2026-05-29 08:46

适用版本： V2.2.x、V3.1.x、V3.2.x 内容类型：Troubleshoot  

本文介绍执行存储过程报 ORA-00942 错误提示 PL 权限不足的原因和解决方法。

## 适用版本

OceanBase V2.x 及后续版本

## 问题现象

Oracle 模式下，执行以下语句。

- `sys` 租户

  ```unknow
  obclient> CREATE USER test1 IDENTIFIED BY 123456;
  obclient> CREATE USER test2 IDENTIFIED BY 123456;
  obclient> GRANT CREATE SESSION TO test1,test2;
  obclient> GRANT CREATE TABLE TO test2;
  obclient> GRANT CREATE PROCEDURE TO test1;

  ```
 - `test2` 租户

  ```unknow
  obclient> CREATE TABLE loghistory(userid VARCHAR(20),logdate DATE);

  ```
 - `test1` 租户

  ```unknow
  obclient> CREATE OR REPLACE PROCEDURE userlogin
  AUTHID DEFINER
      IS
  BEGIN
      INSERT INTO loghistory (userid) VALUES (USER);
  END;

  ```

使用 `test2` 用户登录到 `test2` 库，执行存储过程 `userlogin` 错误，错误信息如下。

```unknow
obclient> begin test1.userlogin; end;/
ORA-00942: table or view does not exist

```

## 可能原因

OceanBase 数据库 Oracle 模式具有与 Oracle 数据库相同的特性，每个 PL 在创建时都可以指定 `AUTHID`子句，用于控制存储过程是按所有者权限调用还是按当前用户权限执行，默认是按所有者的权限进行调用。因此，默认情况下，用户拥有的 ROLE 权限不能在存储过程中使用。

其中，`AUTHID` 可选 `DEFINER` 与 `CURRENT_USER`，默认为 `DEFIENER`，`DEFINER` 表示存储过程是按所有者权限调用，`CURRENT_USER` 表示按当前用户权限执行。

## 解决方式

有两种解决方式：

- 向 `test1` 用户授予相应的权限解决该问题。

  存储过程中需要什么权限，就需要向定义者授予什么权限，本例向 `test1` 用户授予 `INSERT ANY TABLE` 权限。

  ```unknow
  obclient> GRANT INSERT ANY TABLE TO test1;
  或
  obclient> GRANT DBA TO test1;

  ```
 - 创建 PL 时指定 `AUTHID` 为 `CURRENT_USER`。

  ```unknow
  obclient> CREATE OR REPLACE PROCEDURE userlogin
  AUTHID CURRENT_USER
      IS
  BEGIN
      INSERT INTO loghistory (userid) VALUES (USER);
  END;

  ```

上一篇

[Oracle 模式下普通用户无法通过 dbms_metadata.get_ddl() 获取对象的 DDL，错误代码 ORA-00942](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000169)

下一篇

[OceanBase 数据库 Oracle 模式下 PL 模块中不支持包含标识符 NEW](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209969) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
