暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

第12天 | openGauss逻辑结构:模式管理

原创 yBmZlQzJ 2022-12-05
348

接着昨天继续学习openGauss,今天是第12天了。今天学习内容是openGauss逻辑结构:模式管理。
老规矩,先登陆墨天轮为我准备的实训实验室

root@modb:~# su - omm
omm@modb:~$ gsql -r

–执行如下的命令和SQL语句,创建表空间enmtbs和数据库enmdb:

omm=# CREATE TABLESPACE enmtbs RELATIVE LOCATION 'tablespace/enmtbs1';
CREATE TABLESPACE
omm=# CREATE DATABASE enmdb WITH TABLESPACE = enmtbs;
CREATE DATABASE

–创建数据库用户user1的同时,会在系统的omm数据库中创建一个与这个用户名同名的模式user1。

omm=# CREATE USER user1 IDENTIFIED BY 'kunpeng@1234';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
omm=# ALTER USER user1  SYSADMIN;
ALTER ROLE

作业要求

1.创建一个名为testsm、testsm1的模式
omm=# create schema testsm;
CREATE SCHEMA
omm=# create schema testsm1;
omm=# CREATE SCHEMA
2.创建一个用户john, 并将testsm的owner修改为john,且修改owner前后分别使用\dn+查看模式信息
omm=# CREATE USER john IDENTIFIED BY 'john@1234';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
omm=# ALTER USER user1  SYSADMIN;
ALTER ROLE

修改前记录

omm=# \dn
     List of schemas
      Name       | Owner 
-----------------+-------
 blockchain      | omm
 cstore          | omm
 db4ai           | omm
 dbe_perf        | omm
 dbe_pldebugger  | omm
 dbe_pldeveloper | omm
 john            | john
 pkg_service     | omm
 public          | omm
 snapshot        | omm
 sqladvisor      | omm
 testsm          | omm
 testsm1         | omm
 user1           | user1
(14 rows)

将testsm的owner修改为john,并查看变化后的模式

omm=# ALTER SCHEMA testsm OWNER TO john;
ALTER SCHEMA
omm=# \dn
     List of schemas
      Name       | Owner 
-----------------+-------
 blockchain      | omm
 cstore          | omm
 db4ai           | omm
 dbe_perf        | omm
 dbe_pldebugger  | omm
 dbe_pldeveloper | omm
 john            | john
 pkg_service     | omm
 public          | omm
 snapshot        | omm
 sqladvisor      | omm
 testsm          | john
 testsm1         | omm
 user1           | user1
(14 rows)
3.重命名testsm为testsm2
omm=# alter schema testsm rename to testsm2;
omm=# ALTER SCHEMA
omm=# \dn
     List of schemas
      Name       | Owner 
-----------------+-------
 blockchain      | omm
 cstore          | omm
 db4ai           | omm
 dbe_perf        | omm
 dbe_pldebugger  | omm
 dbe_pldeveloper | omm
 john            | john
 pkg_service     | omm
 public          | omm
 snapshot        | omm
 sqladvisor      | omm
 testsm1         | omm
 testsm2         | john
 user1           | user1
(14 rows)
4.在模式testsm1中建表t1、插入记录和查询记录
omm=# create table testsm1.t1(product_id INTEGER,product_name Char(20),category Char(10));
CREATE TABLE
omm-# insert into testsm1.t1(product_id,product_name,category) values
(1700,'wait interface','Books'),
omm-# (1666,'harry potter','toys');
INSERT 0 3
select * from testsm1.t1;
omm=# select * from testsm1.t1;
 product_id |     product_name     |  category  
------------+----------------------+------------
       1601 | lamaze               | toys      
       1700 | wait interface       | Books     
       1666 | harry potter         | toys      
       1601 | lamaze               | toys      
       1700 | wait interface       | Books     
omm=#        1666 | harry potter         | toys   

5.在会话级设置模式搜索顺序

omm=#  show SEARCH_PATH;
  search_path   
----------------
 "$user",public
(1 row)

omm=# SET SEARCH_PATH TO testsm1;
SET
omm=# show SEARCH_PATH;
 search_path 
-------------
 testsm1

6.在数据库级设置模式搜索顺序

omm=# ALTER DATABASE enmdb SET SEARCH_PATH TO testsm1;
ALTER DATABASE
omm=# \c enmdb user1
Password for user user1: 
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "enmdb" as user "user1".
enmdb=> show SEARCH_PATH;
 search_path 
-------------
 testsm1

7.在用户级设置模式搜索顺序

enmdb=> ALTER USER user1 SET SEARCH_PATH TO schm2;
ALTER ROLE
enmdb=> \q
omm@modb:~$ gsql -d enmdb -U user1 -W kunpeng@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.

enmdb=> show SEARCH_PATH;
 search_path 
-------------
 schm2
(1 row)
总结

今天练习比较深了点,课后还需要多多练习。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论