举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > OceanBase CREATE SYNONYM

OceanBase CREATE SYNONYM

2023-03-31 09:18

 OceanBase CREATE SYNONYM

描述

该语句用来创建一个同义词。

格式

CREATE [ OR REPLACE ] [ PUBLIC ]
SYNONYM [ DATABASE. ]synonym
FOR [ DATABASE. ]object;

参数说明

参数

描述

OR REPLACE

表示如果要创建的同义词名称已存在,则使用新的定义重新创建同义词。

PUBLIC

指定 PUBLIC 来创建公共同义词,所有用户都可以使用。用户必须对基础对象具有相应的权限才能使用该同义词。

在解析对象的引用时,仅当对象没有指定 DataBase 时,才会使用公共同义词。

如果不指定 PUBLIC,则同义词是私有的,只能当前 DataBase 访问,并且同义词名称在当前 DataBase 中必须唯一。

[ DataBase. ]synonym

DataBase 指定当前同义词属于哪个 DataBase,如果指定了 PUBLIC,则对同义词不需要指定 DataBase;synonym 表示同义词的名称。

[ DataBase. ]object

表示同义词对应对象的名称。

举例

  • 创建一个同义词。
OceanBase(admin@test)>create table t1(c1 int);
Query OK, 0 rows affected (0.18 sec)

OceanBase(admin@test)>create synonym s1 for t1;
Query OK, 0 rows affected (0.05 sec)

OceanBase(admin@test)>insert into s1 values(1);
Query OK, 1 row affected (0.02 sec)

OceanBase(admin@test)>select * from s1;
+------+
| c1   |
+------+
|    1 |
+------+
1 row in set (0.01 sec)
  • 创建一个 PUBLIC 同义词
OceanBase(admin@test)>create public synonym syn_pub for t1;
Query OK, 0 rows affected (0.03 sec)

OceanBase(admin@test)>select * from syn_pub;
+------+
| c1   |
+------+
|    1 |
+------+
1 row in set (0.01 sec)

注意事项

创建同义词时,需要满足如下权限要求:

  • 在当前的 DataBase 下创建私有的 synonym,需要 CREATE SYNONYM 权限
  • 在非当前 DataBase 下创建私有的 synonym,需要 CREATE ANY SYNONYM 权限
  • 创建 PUBLIC 的 synonym,需要 CREATE PUBLIC SYNONYM 权限
  • 对于需要创建 synonym 的对象不需要存在,也不需要具有访问权限
连接sys用户:
OceanBase(ADMIN@TEST)>CREATE USER syn_user IDENTIFIED BY syn_user;
Query OK, 0 rows affected (0.06 sec)

OceanBase(ADMIN@TEST)>grant CREATE on syn_user.* to syn_user;
Query OK, 0 rows affected (0.02 sec)

OceanBase(ADMIN@TEST)>grant SELECT on syn_user.* to syn_user;
Query OK, 0 rows affected (0.03 sec)


连接syn_user
//创建同义词失败
OceanBase(SYN_USER@(none))>create synonym syn_1 for t1;
ERROR-00600: internal error code, arguments: -5036, Access denied; you need (at least one of) the CREATE SYNONYM privilege(s) for this operation

连接sys用户,给定CREATE SYNONYM权限
OceanBase(ADMIN@TEST)>grant CREATE SYNONYM on *.* to syn_user;
Query OK, 0 rows affected (0.03 sec)

连接syn_user
OceanBase(SYN_USER@(none))>create synonym syn_1 for t1;
Query OK, 0 rows affected (0.05 sec)
阅读全文
以上是编程学为你收集整理的 OceanBase CREATE SYNONYM全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  OceanBase EXP

    OceanBase EXP

    2023-04-24 OceanBase EXP

    EXP函数返回 e 的numeric_expression次幂(e 为数学常量,e = 2.71828183... )。语法EXP (numeric_expression)参数参数说明nume...

  •  OceanBase ROUND

    OceanBase ROUND

    2023-06-09 OceanBase ROUND

    ​ROUND​函数返回参数​numeric​四舍五入后的值。语法ROUND (numeric[,decimal])参数参数说明numeric数值型(NUMBER、FLOAT、B...

  •  OceanBase CURRENT_DATE

    OceanBase CURRENT_DATE

    2023-05-17

    CURRENT_DATE函数返回当前会话时区中的当前日期。语法CURRENT_DATE参数无参数。返回类型DATE数据类型。示例此示例显示了不同会话...

  •  OceanBase NUMTODSINTERVAL

    OceanBase NUMTODSINTERVAL

    2023-06-12

    ​NUMTODSINTERVAL​函数是把参数​n​转为以参数​interval_unit​为单位的​INTERVAL DAY TO SECOND​数据类型的值。语法NUMTO...

  • oceanbase 函数 OceanBase 分析函数
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部