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 ~]$