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

openGauss 每日一练第 4 天 openGauss 中一个数据库可以被多个用户访问

心有星汉 2024-10-13
101

学习目标

学习 openGauss 体系结构,使用多个用户访问同一个数据库

课程学习

创建 user1、user2、user3 用户,验证数据库 testdb 可以被用户 user1、user2、user3 访问(分别在数据库中创建了一张表、插入数据、进行查询)。即一个数据库可以被多个用户访问。

1.创建用户 user1、user2、user3

--执行下面的SQL语句,创建用户user1、user2、user3:

CREATE USER user1 IDENTIFIED BY 'Gauss@123';

CREATE USER user2 IDENTIFIED BY 'Gauss@123';

CREATE USER user3 IDENTIFIED BY 'Gauss@123';

--授予user1、user2、user3数据库系统的SYSADMIN权限:

ALTER USER user1 SYSADMIN;

ALTER USER user2 SYSADMIN;

ALTER USER user3 SYSADMIN;

--执行下面的命令,查看有哪些用户:

omm=# \du

List of roles

Role name | Attributes | Memb

er of

-----------+------------------------------------------------------------------------------------------------------------------+-----

------

omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}

openg | | {}

user1 | Sysadmin | {}

user2 | Sysadmin | {}

user3 | Sysadmin

1

2.在终端中,分别使用 user1、user2、user3 用户访问数据库 testdb。

--以用户 user1 的身份在数据库 testdb 中创建表 t1,并插入一条数据:

\set PROMPT1 '%n@%m %~%R%#'

\c testdb user1

create table t1(col1 char(20));

insert into t1 values('Hello gauss 1');

select * from t1;

2

--以用户 user2 的身份在数据库 testdb 中创建表 t2,并插入一条数据:

\c testdb user2

create table t2(col1 char(20));

insert into t2 values('Hello gauss 2');

select * from t2;

3

--以用户 user3 的身份在数据库 testdb 中创建表 t3,并插入一条数据:

\c testdb user3

create table t3(col1 char(20));

insert into t3 values('Hello gauss 3');

select * from t3;

4

3.使用 user1、user2、user3 用户中的任何一个,执行如下命令,查看当前数据库 testdb 有哪些表:

user3@local testdb=>\dt

List of relations

Schema | Name | Type | Owner | Storage

--------+------+-------+-------+----------------------------------

public | t1 | table | user1 | {orientation=row,compression=no}

public | t2 | table | user2 | {orientation=row,compression=no}

public | t3 | table | user3 | {orientation=row,compression=no}

(3 rows)

user3@local testdb=>

课后作业

1.创建用户 user01、user02、user03,授予 user01、user02、user03 数据库系统的 SYSADMIN 权限

\set PROMPT1 '%n@%m %~%R%#'

\du

create user user01 identified by 'Gauss@123';

create user user02 identified by 'Gauss@123';

create user user03 identified by 'Gauss@123';

--授权

alter user user01 SYSADMIN;

alter user user02 SYSADMIN;

alter user user03 SYSADMIN;

5

2.分别使用 user01、user02、user03 访问数据库 testdb1,创建各自的表,并插入数据。表名和数据如下:

表名分别为: products1、 products2、 products3

字段名

数据类型

含义

product_id

INTEGER

产品编号

product_name

Char(20)

产品名

category

Char(30)

种类

向表中插入数据:

product_id product_name category

1502 olympus camera electrncs

1601 lamaze toys

1700 wait interface Books

1666 harry potter toys

\c testdb1 user01

create table products1(product_id int,product_name Char(20), category Char(30));

insert into products1 values(1502,'olympus camera','electrncs'),(1601,'lamaze','toys'),(1700,'wait interface','Books'),(1666,'harry potter','toys');

select * from products1;

6

\c testdb1 user02

create table products2(product_id int,product_name Char(20), category Char(30));

insert into products2 values(1502,'olympus camera','electrncs'),(1601,'lamaze','toys'),(1700,'wait interface','Books'),(1666,'harry potter','toys');

select * from products2;

7

\c testdb1 user03

create table products3(product_id int,product_name Char(20), category Char(30));

insert into products3 values(1502,'olympus camera','electrncs'),(1601,'lamaze','toys'),(1700,'wait interface','Books'),(1666,'harry potter','toys');

select * from products3;

9

user03@local testdb1=>select * from products1;

product_id | product_name | category

------------+----------------------+--------------------------------

1502 | olympus camera | electrncs

1601 | lamaze | toys

1700 | wait interface | Books

1666 | harry potter | toys

(4 rows)

user03@local testdb1=>select * from products2;

product_id | product_name | category

------------+----------------------+--------------------------------

1502 | olympus camera | electrncs

1601 | lamaze | toys

1700 | wait interface | Books

1666 | harry potter | toys

(4 rows)

user03@local testdb1=>select * from products3;

product_id | product_name | category

------------+----------------------+--------------------------------

1502 | olympus camera | electrncs

1601 | lamaze | toys

1700 | wait interface | Books

1666 | harry potter | toys

(4 rows)

3.使用 user1、user2、user3 用户中的任何一个,查看当前数据库 testdb1 有哪些表

user03@local testdb1=>\dt

List of relations

Schema | Name | Type | Owner | Storage

--------+-----------+-------+--------+----------------------------------

public | products1 | table | user01 | {orientation=row,compression=no}

public | products2 | table | user02 | {orientation=row,compression=no}

public | products3 | table | user03 | {orientation=row,compression=no}

(3 rows)

user03@local testdb1=>

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

文章被以下合辑收录

评论