openGauss实例下的各数据库之间不能互访,即用户登录一个数据库后,不能同时访问其他数据库记录。
今日练习
1、创建用户user1,分别在数据库mydb1、数据库mydb2创建表t11,t21
openGauss=# CREATE DATABASE mydb1 WITH TABLESPACE = mytbs1;
openGauss=# CREATE DATABASE mydb2 WITH TABLESPACE = mytbs1;
接着创建用户并赋予权限
openGauss=# CREATE USER user1 IDENTIFIED BY 'user1@123';
openGauss=# ALTER USER user1 SYSADMIN;
-用户user1登录到数据库mydb1,创建表t11,并插入、查看数据
openGauss=# \c mydb1 user1
mydb1=> create table t11(col1 char(20));
mydb1=> insert into t11 values('Hello openGauss! 11');
mydb1=> select * from t11;
用户user1登录到数据库mydb2,创建表t21,并插入、查看数据
mydb1=# \c mydb2 user1
mydb2=> create table t21(col1 char(20));
mydb2=> insert into t21 values('Hello openGauss! 21');
mydb2=> select * from t21;
2、user1用户连接到数据库mydb1,并访问数据库mydb1下的表t11
mydb2=> \c mydb1 user1
mydb1=> select * from mydb1.public.t11;
3、在这个连接中(使用数据库用户user1连接到数据库mydb1)访问数据库mydb2下的t21表(会报错)
mydb1=> select * from mydb2.public.t21;
注:如上错误信息所示,不能跨库访问。
4、使用数据库用户user1连接到数据库mydb2,访问数据库mydb2下的t21表。
mydb1=> \c mydb2 user1
mydb2=> select * from mydb2.public.t21;
切换到mydb2 访问t21成功,即要访问某数据库下的表记录,则先要登录该数据库。




