接着昨天继续学习openGauss,今天是第7天了。今天学习内容是openGauss数据库、用户和模式的关系和访问方式,理解模式是在数据库层面,用户是在实例层面。今早去参加了区里的一个会议,学习来晚了点,抓紧交作业了。
老规矩,先登陆墨天轮为我准备的实训实验室,并创建好表空间和数据库
root@modb:~# su - omm
omm@modb:~$ gsql -r
omm=# CREATE TABLESPACE music_tbs RELATIVE LOCATION 'tablespace/test_ts1';
omm=# CREATE DATABASE musicdb WITH TABLESPACE = music_tbs;
创建用户和赋予权限
omm=# CREATE USER user1 IDENTIFIED BY 'user1@1234';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
omm=# ALTER USER user1 SYSADMIN;
omm=# ALTER ROLE
以上内容都是复习和巩固前期学到的命令内容,循序渐进。
1.查看当前数据库下有哪些模式
-- 使用用户user1连接到数据库musicdb,首先查看当前数据库下有哪些模式;
omm=# \q
omm@modb:~$ gsql -d musicdb -U user1 -p 5432 -W user1@1234 -r
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:00 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
musicdb=> \dn
dbe_pldeveloper | omm
pkg_service | omm
public | omm
snapshot | omm
sqladvisor | omm
(10 rows)
musicdb=> List of schemas
Name | Owner
-----------------+-------
blockchain | omm
cstore | omm
db4ai | omm
dbe_perf | omm
dbe_pldebugger | omm
2.然后为数据库musicdb创建4个模式,名称自定义
--用户user1在数据库musicdb中,创建了4个模式:schm1、 schm2、 schm3、 schm4
musicdb=> create schema schm1 AUTHORIZATION user1;
CREATE SCHEMA
musicdb=> create schema schm2 AUTHORIZATION user1;
CREATE SCHEMA
musicdb=> create schema schm3 AUTHORIZATION user1;
CREATE SCHEMA
musicdb=> create schema schm4 AUTHORIZATION user1;
CREATE SCHEMA
--查看musicdb数据库下有哪些模式:
musicdb=> \dn
List of schemas
Name | Owner
-----------------+-------
blockchain | omm
cstore | omm
db4ai | omm
dbe_perf | omm
dbe_pldebugger | omm
dbe_pldeveloper | omm
pkg_service | omm
public | omm
schm1 | user1
schm2 | user1
schm3 | user1
schm4 | user1
snapshot | omm
sqladvisor | omm
(14 rows)
3.在数据库musicdb的不同的模式下创建同名的表
--在不同模式下,创建相同的表并插入数据
musicdb=> create table schm1.ttt(col varchar(100));
CREATE TABLE
musicdb=> create table schm2.ttt(col varchar(100));
CREATE TABLE
musicdb=> create table schm3.ttt(col varchar(100));
CREATE TABLE
musicdb=> create table schm4.ttt(col varchar(100));
CREATE TABLE
musicdb=> insert into schm1.ttt values('Hello! from schema schm1 11111');
INSERT 0 1
musicdb=> insert into schm2.ttt values('Hello! from schema schm2 22222');
INSERT 0 1
musicdb=> insert into schm3.ttt values('Hello! from schema schm3 33333');
INSERT 0 1
musicdb=> insert into schm4.ttt values('Hello! from schema schm4 44444');
INSERT 0 1
4.访问musicdb数据库下不同模式的同名表
select * from schm1.ttt;
select * from schm2.ttt;
select * from schm3.ttt;
select * from schm4.ttt;
5.实验理解:模式是在数据库层面,用户是在实例层面
--登录musicdb数据库,查看用户和模式
gsql -d musicdb -U user1 -p 5432 -W kunpeng@1234 -r
\du
\dn
\q
--登录omm数据库,查看用户和模式
gsql -r
\du
\dn
\q
总结
模式是在数据库层面,用户是在实例层面.
在数据库层面如下
musicdb=> \dn
List of schemas
Name | Owner
-----------------±------
blockchain | omm
cstore | omm
db4ai | omm
dbe_perf | omm
dbe_pldebugger | omm
dbe_pldeveloper | omm
pkg_service | omm
public | omm
schm1 | user1
schm2 | user1
schm3 | user1
schm4 | user1
snapshot | omm
sqladvisor | omm
(14 rows)
在用户层面如下
omm=# \dn
List of schemas
Name | Owner
-----------------±------
blockchain | omm
cstore | omm
db4ai | omm
dbe_perf | omm
dbe_pldebugger | omm
dbe_pldeveloper | omm
pkg_service | omm
public | omm
snapshot | omm
sqladvisor | omm
user1 | user1
(11 rows)