---
title: "管理同义词 - OceanBase 数据库 V4.3.4 | OceanBase 文档中心"
description: 管理同义词 本节主要介绍如何创建和删除同义词。 在 OceanBase 数据库中，同义词是一个租户数据库对象的别名。使用同义词通常是为了管理权限方便，因为同义词可以隐藏另外一个数据对象的所有者权限。 创建同义词 您可以使用 CREATE SYNONYM 语句来创建同义词。 创建同义词时： 如果在当前数据库或 Sche…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.4

# 管理同义词

更新时间：2024-12-27 23:00:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.4/zh-CN/700.reference/300.database-object-management/200.manage-object-of-oracle-mode/700.manage-synonyms-of-oracle-mode.md)  

本节主要介绍如何创建和删除同义词。

在 OceanBase 数据库中，同义词是一个租户数据库对象的别名。使用同义词通常是为了管理权限方便，因为同义词可以隐藏另外一个数据对象的所有者权限。

## 创建同义词

您可以使用 `CREATE SYNONYM` 语句来创建同义词。

创建同义词时：

- 如果在当前数据库或 Schema 下创建私有同义词，则当前用户需要具备 `CREATE SYNONYM` 权限。
 - 如果在非当前数据库或 Schema 下创建私有同义词，则当前用户需要具备 `CREATE ANY SYNONYM` 权限。
 - 如果创建公共同义词，则当前用户需要具备 `CREATE PUBLIC SYNONYM` 权限。
 - 创建同义词的对象可以不存在，当前用户也不需要具有该对象的访问权限。

查看用户权限的详细操作，参见 [查看用户权限](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576692)。授予用户权限的详细操作，参见 [直接授予权限](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001576687)。

创建同义词的语法格式如下：

```sql
CREATE [ OR REPLACE ] [ PUBLIC ] SYNONYM [ schema. ]synonym FOR [ schema. ]object;

```

有关 `CREATE SYNONYM` 语句的更多信息，请参见《SQL 参考（Oracle 模式）》章节。

示例：

- 创建一个私有同义词。

  ```sql
  obclient> CREATE TABLE test(c1 int);
  Query OK, 0 rows affected (0.18 sec)

  obclient> CREATE SYNONYM s1 for test;
  Query OK, 0 rows affected (0.05 sec)

  obclient> INSERT INTO s1 VALUES(1);
  Query OK, 1 row affected (0.02 sec)

  obclient> SELECT * FROM s1;
  +------+
  | c1   |
  +------+
  |    1 |
  +------+
  1 row in set (0.01 sec)

  ```
 - 创建一个公共同义词。

  ```sql
  obclient> CREATE PUBLIC SYNONYM syn_pub FOR test;
  Query OK, 0 rows affected (0.03 sec)

  obclient> SELECT * FROM syn_pub;
  +------+
  | c1   |
  +------+
  |    1 |
  +------+
  1 row in set (0.01 sec)

  ```

## 删除同义词

您可以使用 `DROP SYNONYM` 语句来删除不需要使用的同义词。

删除同义词时：

- 如果删除的是私有同义词，则需要保证待删除的同义词在对应的数据库或 Schema 下，且当前用户需要具备 `DROP ANY SYNONYM` 权限。
 - 如果删除的是公共同义词，则当前用户需要具备 `DROP PUBLIC SYNONYM` 权限。

  同时，在删除时，必须指定 `PUBLIC` 关键字，并且不能指定数据库或 Schema。

删除同义词的语法格式如下：

```sql
DROP [PUBLIC] SYNONYM [ schema. ]synonym;

```

有关 `DROP SYNONYM` 语句的更多信息，请参见《SQL 参考（Oracle 模式）》。

示例：

- 删除一个私有同义词。

  ```sql
  obclient> DROP SYNONYM test.s1;
  Query OK, 0 rows affected (0.03 sec)

  ```
 - 删除一个公共同义词。

  ```sql
  obclient> DROP PUBLIC SYNONYM syn_pub;
  Query OK, 0 rows affected (0.02 sec)

  ```

 上一篇 下一篇 ![有帮助](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) 咨询热线
