暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

数据库对象管理MySQL模式管理同义词

2023-04-05
336

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

在 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)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论