本节主要介绍如何创建和删除同义词。
在 OceanBase 数据库中,同义词是一个租户数据库对象的别名。使用同义词通常是为了管理权限方便,因为同义词可以隐藏另外一个数据对象的所有者权限。
创建同义词
您可以使用 CREATE SYNONYM 语句来创建同义词。
创建同义词时:
如果在当前数据库或 Schema 下创建私有同义词,则当前用户需要具备
CREATE SYNONYM权限。如果在非当前数据库或 Schema 下创建私有同义词,则当前用户需要具备
CREATE ANY SYNONYM权限。如果创建公共同义词,则当前用户需要具备
CREATE PUBLIC SYNONYM权限。创建同义词的对象可以不存在,当前用户也不需要具有该对象的访问权限。
查看用户权限的详细操作,参见 查看用户权限。授予用户权限的详细操作,参见 修改用户权限。
创建同义词的语法格式如下:
CREATE [ OR REPLACE ] [ PUBLIC ] SYNONYM [ schema. ]synonym FOR [ schema. ]object;
有关 CREATE SYNONYM 语句的更多信息,请参见《SQL 参考(Oracle 模式)》章节。
示例:
创建一个私有同义词。
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)创建一个公共同义词。
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。
查看用户权限的详细操作,参见 查看用户权限。授予用户权限的详细操作,参见 修改用户权限。
删除同义词的语法格式如下:
DROP [PUBLIC] SYNONYM [ schema. ]synonym;
有关 DROP SYNONYM 语句的更多信息,请参见《SQL 参考(Oracle 模式)》。
示例:
删除一个私有同义词。
obclient> DROP SYNONYM test.s1; Query OK, 0 rows affected (0.03 sec)删除一个公共同义词。
obclient> DROP PUBLIC SYNONYM syn_pub; Query OK, 0 rows affected (0.02 sec)




