GBase 8a V95设置更改数据库用户默认VC的方法

GBase 8a数据库集群V95版本开始支持虚拟集群,每个新建的数据库用户,可以设置一个默认的VC,本文介绍设置的方法。

语法

设置默认vc

set default_vc for user_name = vc_name

说明

default_vc 是关键字,可以根据业务需求进行设置。
user_name 是设置默认VC的数据库用户名
vc_name 是vc的名字。

每个用户只能有1个默认VC,该用户在登录时,如果指定了用户自建的数据库而没有vc部分,则使用默认的VC。

样例

如下样例设置testdb用户的默认vc是vc01。

[gbase@gbase_rh7_001 ~]$ gccli

GBase client 9.5.2.36.125743. Copyright (c) 2004-2021, GBase.  All Rights Reserved.

gbase> set default_vc for testdb=vc01;
Query OK, 0 rows affected (Elapsed: 00:00:00.01)

gbase> show grants for testdb;
+------------------------------------------------------------------------------------------------------------------------------+
| Grants for testdb@%                                                                                                          |
+------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.*.* TO 'testdb'@'%' IDENTIFIED BY PASSWORD '*9EC001FF562CDE467D041CEAB13160F3BBB49DD2' WITH TASK_PRIORITY 2 |
| GRANT ALL PRIVILEGES ON "vc00001"."testdb".* TO 'testdb'@'%'                                                                 |
+------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (Elapsed: 00:00:00.00)

gbase> ^CAborted
[gbase@gbase_rh7_001 ~]$ gccli -utestdb -ptestdb testdb

GBase client 9.5.2.36.125743. Copyright (c) 2004-2021, GBase.  All Rights Reserved.

gbase>

注意其中的vc0001是vc的ID,而我们设置时用的时vcname。vcid是自动生成的,vcname是在创建vc时用户指定的。而vcname可以以通过gcadmin renamevc改名,vcid则不变。

gbase> show vcs;
+---------+------+---------+
| id      | name | default |
+---------+------+---------+
| vc00001 | vc01 |         |
| vc00002 | vc02 |         |
+---------+------+---------+
2 rows in set (Elapsed: 00:00:00.00)

如下样例更改testdb的默认vc是vc02,但由于testdb没有vc02的用户数据库访问权限,直接报错。但可以登录,且访问元数据。

gbase> set default_vc for testdb=vc02;
Query OK, 0 rows affected (Elapsed: 00:00:00.02)

gbase> show vcs;
+---------+------+---------+
| id      | name | default |
+---------+------+---------+
| vc00001 | vc01 |         |
| vc00002 | vc02 |    Y    |
+---------+------+---------+
2 rows in set (Elapsed: 00:00:00.00)

gbase> ^CAborted
[gbase@gbase_rh7_001 ~]$ gccli -utestdb -ptestdb

GBase client 9.5.2.36.125743. Copyright (c) 2004-2021, GBase.  All Rights Reserved.

gbase> show tables;
ERROR 1046 (3D000): No database selected
gbase> use testdb
    -> ;
ERROR 1044 (42000): Access denied for user 'testdb'@'%' to database 'testdb'
gbase> sho^CAborted

[gbase@gbase_rh7_001 ~]$ gccli -utestdb -ptestdb testdb
ERROR 1044 (42000): Access denied for user 'testdb'@'%' to database 'testdb'
[gbase@gbase_rh7_001 ~]$