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

openGauss每日一练第 5 天 | 初窥门径:一夫当关!使用一个用户访问多个数据库,你就是最靓的仔!

原创 贾大夫 2022-12-08
647

Table of Contents

显而易见的是,第四天,第五天的课程内容,对于我这样的小白来说,是很有含金量的,这几科需要多多练习,多多尝试。当然,我对openGauss的使用和理解,也在稳步提升,真是令人振奋。

上文提要

上节课,我们学习了创建新用户,并使用不同用户创建表,插入数据,查询表等操作。本次课程内容依托于第四节课内容,如果有些想不起来了,不妨复习一下openGauss每日一练第 4 天

学习目标

学习openGauss体系结构,了解实例(集簇或服务)和数据库的关系,归结为如下几点:

1. 使用用户1登录数据库1,创建一个表1,并插入一条数据

2. 使用用户1登录数据库2,创建一个表2,并插入一条数据

3. 使用用户1登录数据库3,创建一个表3,并插入一条数据

学习内容

摘要

数据库用户user1可以访问不同的数据库(musicdb1、musicdb2、musicdb3)。
实验中user1用户在数据库musicdb1中创建了表t11、在数据库musicdb2创建了表t21、在数据库musicdb3中创建了表t31,验证了这个结论。

课前准备

如果您充满活力和学习热情,一口气从第一课学到第五课,此时,您的数据库中可能已经有了一些 tablespacedatabase,为避免重复,影响接下来的学习的顺利程度,有必要做如下课前准备:

--进入数据库omm,创建表空间、测试数据库
drop DATABASE  IF EXISTS  musicdb;
drop DATABASE  IF EXISTS  musicdb1;
drop DATABASE  IF EXISTS  musicdb2;
drop DATABASE  IF EXISTS  musicdb3;
drop tablespace IF EXISTS music_tbs;

CREATE TABLESPACE music_tbs RELATIVE LOCATION 'tablespace/test_ts1';
CREATE DATABASE musicdb1  WITH TABLESPACE = music_tbs;
CREATE DATABASE musicdb2  WITH TABLESPACE = music_tbs;
CREATE DATABASE musicdb3  WITH TABLESPACE = music_tbs;

--执行下面的SQL语句,创建用户user1:
CREATE USER user1 IDENTIFIED BY 'kunpeng@1234';
 
--授予user1数据库系统的SYSADMIN权限:
ALTER USER user1 SYSADMIN;

结果:
image.png


细心的朋友可以看到,此时,我已经拥有user1用户,并赋予了管理员权限。

1. 使用user1用户,创建表t11,t21,t31,并插入数据

本次学习内容主旨为使用同一用户在不同数据库中建表及插入数据,所以此处只写一则示例,示例如下:

--用户user1登录到数据库musicdb1,创建表t11,并插入、查看数据

 \c musicdb1 user1

 create table t11(col1 char(20));
 insert into t11 values('Hello openGauss! 11');
 select * from t11;      

结果:
image.png

注:
要点为同一用户在不同数据库中进行操作,所以特别要注意的是,连接不同数据库的命令,命令如下:

\c musicdb1 user1
\c musicdb2 user1
\c musicdb3 user1

课程作业

1.创建数据库musicdb10,创建用户user10,赋予sysadmin权限

CREATE USER user10 IDENTIFIED BY 'kunpeng@1234';
ALTER USER user1 SYSADMIN;

结果:
image.png

此处尝试密码为1234,奈何限制密码长度最短为8位,示例如下:
image.png
尝试密码12345678,限制密码需包含3种字符,示例如下:
image.png
所以统一使用密码kunpeng@1234,以防忘记。

2.使用用户user10访问数据库postgres,创建一个表并插入数据

-- 使用user10,访问数据库postgres
\c postgres user10

-- 创建表t_music
CREATE TABLE t_music(
music_name CHAR(20),
age CHAR(20),
author CHAR(20)
);

-- 插入数据
INSERT INTO t_music(
music_name,
age,
author
) values(
'七里香',
'2004',
'Jay'
);

--查询
SELECT * FROM t_music; 

结果:
image.png

此处尝试age字段使用YEAR类型,建表失败,需要去群里问一下。
image.png

3.用户user10访问数据库omm,创建一个表并插入数据

-- 使用user10,访问数据库omm
\c omm user10

-- 创建表t_music
CREATE TABLE t_music(
music_name CHAR(20),
age CHAR(20),
author CHAR(20)
);

-- 插入数据
INSERT INTO t_music(
music_name,
age,
author
) values(
'不为谁而作的歌',
'2015',
'JJ'
);

--查询
SELECT * FROM t_music; 

结果:
image.png

4.用户user10访问数据库musicdb10,创建一个表并插入数据

-- 使用user10,访问数据库musicdb10
\c musicdb10 user10

-- 创建表t_music
CREATE TABLE t_music(
music_name CHAR(20),
age CHAR(20),
author CHAR(20)
);

-- 插入数据
INSERT INTO t_music(
music_name,
age,
author
) values(
'日不落',
'2007',
'Jolin'
);

--查询
SELECT * FROM t_music; 

结果:
image.png

往期内容

openGauss每日一练第 4 天
openGauss每日一练第 3 天
openGauss每日一练第 2 天
openGauss每日一练第 1 天

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

文章被以下合辑收录

评论