创新互联OceanBase教程:OceanBaseCREATESYNONYM

描述

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

创新互联主要从事成都做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务克拉玛依区,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

格式

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

参数说明

参数

描述

OR REPLACE

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

PUBLIC

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

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

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

[ schema. ]synonym

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

[ schema. ]object

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

示例

  • 创建一个同义词。

OceanBase(TEST@TEST)>create table t1(c1 int);
Query OK, 0 rows affected (0.11 sec)

OceanBase(TEST@TEST)>create synonym s1 for t1;
Query OK, 0 rows affected (0.04 sec)

OceanBase(TEST@TEST)>insert into s1 values(1);
Query OK, 1 row affected (0.04 sec)

OceanBase(TEST@TEST)>select * from s1;
+------+
| C1   |
+------+
|    1 |
+------+
1 row in set (0.02 sec)
  • 创建一个 PUBLIC 同义词

OceanBase(TEST@TEST)>create public synonym syn_pub for t1;
Query OK, 0 rows affected (0.04 sec)

OceanBase(TEST@TEST)>select * from syn_pub;
+------+
| C1   |
+------+
|    1 |
+------+
1 row in set (0.01 sec)

注意事项

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

  • 在当前的 schema 下创建私有的 synonym,需要 CREATE SYNONYM 权限

  • 在非当前 schema 下创建私有的 synonym,需要 CREATE ANY SYNONYM 权限

  • 创建 PUBLIC 的 synonym,需要 CREATE PUBLIC SYNONYM 权限

  • 对于需要创建 synonym 的对象不需要存在,也不需要具有访问权限

// 创建synonym_user
OceanBase(TEST@TEST)>CREATE USER synonym_user IDENTIFIED BY synonym_user;
Query OK, 0 rows affected (0.04 sec)

OceanBase(TEST@TEST)>grant CREATE on test.* to synonym_user;
Query OK, 0 rows affected (0.05 sec)

OceanBase(TEST@TEST)>grant SELECT on test.* to synonym_user;
Query OK, 0 rows affected (0.02 sec)

// 连接synonym_user
OceanBase(SYNONYM_USER@TEST)>create or replace synonym s1 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

// 重新给定CREATE SYNONYM权限
OceanBase(TEST@TEST)>grant CREATE SYNONYM on *.* to synonym_user;
Query OK, 0 rows affected (0.03 sec)

OceanBase(SYNONYM_USER@TEST)>create synonym s1 for t1;
Query OK, 0 rows affected (0.07 sec)

文章标题:创新互联OceanBase教程:OceanBaseCREATESYNONYM
网页路径:http://www.stwzsj.com/qtweb/news25/12325.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联