学习目标
学习openGauss体系结构,使用多个用户访问同一个数据库
课程学习
创建用户1、用户2、用户3用户,验证数据库musicdb可以被用户user1、user2、user3访问(分别在数据库中创建了一张表、插入数据、进行查询)。即一个数据库可以被多个用户访问。
1.测试环境准备:
root@modb:~# su - omm omm@modb:~$ gsql -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.omm=# drop database if exists musicdb; NOTICE: database "musicdb" does not exist, skipping(跳过) DROP DATABASE omm=# drop database if exists musicdb1; NOTICE: database "musicdb1" does not exist, skipping DROP DATABASEomm=# drop database if exists musicdb2; NOTICE: database "musicdb2" does not exist, skipping DROP DATABASE omm=# drop database if exists musicdb3; NOTICE: database "musicdb3" does not exist, skipping DROP DATABASE omm=# drop tablespace if exists music_tbs; NOTICE: Tablespace "music_tbs" does not exist, skipping. DROP TABLESPACE omm=# create tablespace music_tbs relative location 'tablespace/test_ts1'; CREATE TABLESPACEomm=# create database musicdb with tablespace = music_tbs ; CREATE DATABASE
2.创建用户用户1、用户2、用户3
--执行下面的SQL语句,创建用户user1、user2、user3:omm=# create user user1 identified by 'kunpeng@1234'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# create user user2 identified by 'kunpeng@1234'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# create user user3 identified by 'kunpeng@1234'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE--授予user1、user2、user3数据库系统的SYSADMIN权限:omm=# alter user user1 sysadmin; ALTER ROLEomm=# alter user user2 sysadmin; ALTER ROLE omm=# alter user user3 sysadmin; ALTER ROLE--执行下面的命令,查看有哪些用户:omm=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------------------------------------------------- -----------+----------- gaussdb | Sysadmin | {} omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyad min, UseFT | {} user1 | Sysadmin | {} user2 | Sysadmin | {} user3 | Sysadmin | {}
3.在终端中,分别使用user1、user2、user3用户访问数据库musicdb。
--以用户user1的身份在数据库musicdb中创建表t1,并插入一条数据:omm=# \c musicdb user1 Password for user user1: musicdb=> Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "musicdb" as user "user1". musicdb=> create table t1(col1 char(20)); CREATE TABLE musicdb=> insert into t1 values('Hello kunpeng 1'); musicdb=> INSERT 0 1 musicdb=> select * from t1; col1 ---------------------- Hello kunpeng 1 (1 row)--以用户user2的身份在数据库musicdb中创建表t2,并插入一条数据:musicdb=> \c musicdb user2 Password for user user2: Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "musicdb" as user "user2". musicdb=> create table t2(col1 char(20)); CREATE TABLEmusicdb=> insert into t2 values('Hello kunpeng 2'); INSERT 0 1 musicdb=> select * from t2; col1 ---------------------- Hello kunpeng 2 (1 row)--以用户user3的身份在数据库musicdb中创建表t3,并插入一条数据:musicdb=> \c musicdb user3 Password for user user3: musicdb=> Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "musicdb" as user "user3". create table t3(col1 char(20)); musicdb=> CREATE TABLE musicdb=> insert into t3 values('Hello kunpeng 3'); musicdb=> INSERT 0 1 musicdb=> select * from t3; col1 ---------------------- Hello kunpeng 3 (1 row)
4.使用user1、user2、user3用户中的任何一个,执行如下命令,查看当前数据库musicdb有哪些表:
musicdb=> \dt
public | t3 | table | user3 | {orientation=row,compression=no}
(3 rows)
musicdb=> List of relations
Schema | Name | Type | Owner | Storage
--------+------+-------+-------+----------------------------------
public | t1 | table | user1 | {orientation=row,compression=no}
public | t2 | table | user2 | {orientation=row,compression=no}
课后作业
1.创建用户用户A、userB、userC,授予userA、userB、userC数据库系统的SYSADMIN权限
root@modb:~# su - omm omm@modb:~$ gsql -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. omm=# drop database if exists musicdb; DROP DATABASE omm=# drop database if exists musicdb1; NOTICE: database "musicdb1" does not exist, skipping DROP DATABASE omm=# drop database if exists musicdb2; DROP DATABASE omm=# NOTICE: database "musicdb2" does not exist, skipping omm=# drop database if exists musicdb3; NOTICE: database "musicdb3" does not exist, skipping DROP DATABASE omm=# drop tablespace if exists music_tbs; omm=# DROP TABLESPACEomm=# create tablespace music_tbs relative location 'tablespace/test_ts1'; CREATE TABLESPACE ^ omm=# create database musicdb with tablespace = music_tbs ; CREATE DATABASEomm=# create user userA identified by 'kunpeng@1234'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# create user userB identified by 'kunpeng@1234'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# create user userC identified by 'kunpeng@1234'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLEomm=# alter user userA sysadmin; ALTER ROLE omm=# alter user userB sysadmin; omm=# ALTER ROLE omm=# alter user userC sysadmin; ALTER ROLEomm=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------------------------------------------------------------+----------- gaussdb | Sysadmin | {} omm=# omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} usera | Sysadmin | {} userb | Sysadmin | {} userc | Sysadmin | {}
2.分别使用userA、userB、userC访问数据库musicdb(如果未删除此库,可创建musicdb2库),创建各自的表,并插入数据。表名和数据如下:
表名分别为: 产品1、 产品2、 产品3
| 字段名 | 数据类型 | 含义 |
|---|---|---|
| product_id | 整数 | 产品编号 |
| product_name | 字符(20) | 产品名 |
| 类别 | 字符(30) | 种类 |
向表中插入数据:
| product_id | product_name | 类别 |
|---|---|---|
| 1502 | 奥林巴斯相机 | 电气化 |
| 1601 | 拉马泽 | 玩具 |
| 1700 | 等待接口 | 书 |
| 1666 | 哈利·波特 | 玩具 |
omm=# \c musicdb userA Password for user usera: Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "musicdb" as user "usera". musicdb=> create table products1(product_id INTEGER,product_name char(20),category char(30)); CREATE TABLEmusicdb=> insert into products1 valuesmusicdb-> (1502,'olympus camera','electrncs'), musicdb-> (1601,'lamzae','toys'),musicdb-> (1700,'wait interface','books'), musicdb-> (1666,'harry potter','toys'); INSERT 0 4musicdb=> select * from products1 ; product_id | product_name | category ------------+----------------------+-------------------------------- 1502 | olympus camera | electrncs 1601 | lamzae | toys 1700 | wait interface | books 1666 | harry potter | toys (4 rows)musicdb=> \c musicdb userB Password for user userb: Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "musicdb" as user "userb".musicdb=> create table products2 (product_id INTEGER,product_name char(20),category char(30)); CREATE TABLE musicdb=> insert into products2 values musicdb-> (1502,'olympus camera','electrncs'), musicdb-> (1601,'lamzae','toys'),musicdb-> (1700,'wait interface','books'), musicdb-> (1666,'harry potter','toys'); INSERT 0 4 musicdb=> select * from products2; product_id | product_name | category ------------+----------------------+-------------------------------- 1502 | olympus camera | electrncs 1601 | lamzae | toys 1700 | wait interface | books 1666 | harry potter | toys (4 rows)musicdb=> \c musicdb userc Password for user userc: Non-SSL connection (SSL connection is recommended when requiring high-security) You are now connected to database "musicdb" as user "userc".musicdb=> create table products3 (product_id INTEGER,product_name char(20),category char(30)); CREATE TABLE musicdb=> insert into products3 values musicdb-> (1502,'olympus camera','electrncs'),musicdb-> (1601,'lamzae','toys'), musicdb-> (1700,'wait interface','books'), musicdb-> (1666,'harry potter','toys'); INSERT 0 4 musicdb=> select * from products3; product_id | product_name | category ------------+----------------------+-------------------------------- 1502 | olympus camera | electrncs 1601 | lamzae | toys 1700 | wait interface | books 1666 | harry potter | toys (4 rows)
3.使用userA、userB、userC用户中的任何一个,查看当前数据库musicdb有哪些表
musicdb=> \dt
List of relations
Schema | Name | Type | Owner | Storage
--------+-----------+-------+-------+----------------------------------
public | products1 | table | usera | {orientation=row,compression=no}
public | products2 | table | userb | {orientation=row,compression=no}
public | products3 | table | userc | {orientation=row,compression=no}
(3 rows)
最后修改时间:2022-12-15 15:32:33
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




