OpenGauss daily practice day 4 | A database in openGauss can be accessed by multiple users

What is the difference between users and roles?
The only difference between user and role is that user has the login user attribute, while role does not have the logins attribute by default and can be added through alter role. There is no difference between the two in other respects.

1. Learning objectives

Learn the openGauss architecture and use multiple users to access the same database

2. Course study

Create users user1, user2, and user3, and verify that the database musicdb can be accessed by users user1, user2, and user3 (create a table in the database, insert data, and query). That is, a database can be accessed by multiple users.

3. Coursework

--测试环境准备
su - omm
gsql -r
--进入数据库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 musicdb  WITH TABLESPACE = music_tbs;

Example of a training environment:

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;
DROP DATABASE
omm=# drop DATABASE  IF EXISTS  musicdb2;
DROP DATABASE
omm=# drop DATABASE  IF EXISTS  musicdb3;
DROP DATABASE
omm=# drop tablespace IF EXISTS music_tbs;
DROP TABLESPACE
omm=# CREATE TABLESPACE music_tbs RELATIVE LOCATION 'tablespace/test_ts1';
CREATE DATABASE musicdb  WITH TABLESPACE = music_tbs;CREATE TABLESPACE
omm=# 
CREATE DATABASE
omm=# 

1. Create users user1, user2, and user3, and grant SYSADMIN authority to the database system of user1, user2, and user3

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

 CREATE USER user1 IDENTIFIED BY 'kunpeng@1234';
 CREATE USER user2 IDENTIFIED BY 'kunpeng@1234';
 CREATE USER user3 IDENTIFIED BY 'kunpeng@1234';
 
--授予user1、user2、user3数据库系统的SYSADMIN权限:

ALTER USER user1 SYSADMIN;
ALTER USER user2 SYSADMIN;
ALTER USER user3 SYSADMIN;

--执行下面的命令,查看有哪些用户:
 \du
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
omm=# 
omm=# ALTER USER user1 SYSADMIN;
ALTER ROLE
omm=# 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, Ope
 user2     | Sysadmin                                                                          
                               | {
    
    }
 user3     | Sysadmin                                                                          
                               | {
    
    }

ratoradmin, Policyadmin, UseFT | {
    
    }
 user1     | Sysadmin                                                                          
                               | {
    
    }
omm=# 

2. Use user1, user2, and user3 to access the database musicdb2 respectively, create their own tables, and insert data. The table name and data are as follows:

The table names are: products1, products2, products3

field name type of data meaning
product_id INTEGER product number
product_name Char(20) product name
category Char(30) type
Insert data into the table:
product_id product_name category
- - -
1502 olympus camera electrncs
1601 lamaze toys
1700 wait interface Books
1666 harry potter toys
--以用户user1的身份在数据库musicdb2中创建表t1,并插入一条数据:
 \c musicdb2 user1
create table products1(product_id integer,product_name char(20),category char(30));
insert into products1(product_id,product_name,category) values(1502,'olympus camera','electrncs'),
(1601,'lamaze','toys'),
(1700,'wait interface','Books'),
(1666,'harry potter','toys');
 
--以用户user2的身份在数据库musicdb2中创建表t2,并插入一条数据:
  \c musicdb2 user2
create table products2(product_id integer,product_name char(20),category char(30));
insert into products2(product_id,product_name,category) values(1502,'olympus camera','electrncs'),
(1601,'lamaze','toys'),
(1700,'wait interface','Books'),
(1666,'harry potter','toys');


--以用户user3的身份在数据库musicdb2中创建表t3,并插入一条数据:
  \c musicdb2 user3
create table products3(product_id integer,product_name char(20),category char(30));
insert into products3(product_id,product_name,category) values(1502,'olympus camera','electrncs'),
(1601,'lamaze','toys'),
(1700,'wait interface','Books'),
(1666,'harry potter','toys');

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=#  \c musicdb2 user1
Password for user user1: 
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "musicdb2" as user "user1".
musicdb2=> create table products1(product_id integer,product_name char(20),category char(30));
CREATE TABLE
musicdb2=> insert into products1(product_id,product_name,category) values(1502,'olympus camera','electrncs'),
musicdb2-> (1601,'lamaze','toys'),
musicdb2-> (1700,'wait interface','Books'),
musicdb2-> (1666,'harry potter','toys');
INSERT 0 4
musicdb2=> \c musicdb2 user2
Password for user user2: 
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "musicdb2" as user "user2".
musicdb2=> create table products2(product_id integer,product_name char(20),category char(30));
CREATE TABLE
musicdb2=> insert into products2(product_id,product_name,category) values(1502,'olympus camera','electrncs'),
musicdb2-> (1601,'lamaze','toys'),
musicdb2-> (1700,'wait interface','Books'),
musicdb2-> (1666,'harry potter','toys');
INSERT 0 4
musicdb2=>   \c musicdb2 user3
Password for user user3: 
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "musicdb2" as user "user3".
musicdb2=> create table products3(product_id integer,product_name char(20),category char(30));
CREATE TABLE
musicdb2=> insert into products3(product_id,product_name,category) values(1502,'olympus camera','electrncs'),
musicdb2-> (1601,'lamaze','toys'),
musicdb2-> (1700,'wait interface','Books'),
musicdb2-> (1666,'harry potter','toys');
INSERT 0 4
musicdb2=> 

3. Use any one of user1, user2, and user3 to check which tables are in the current database musicdb2

omm=# \c musicdb2 user3
Password for user user3: 
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "musicdb2" as user "user3".
musicdb2=> \dt
                           List of relations
 Schema |   Name    | Type  | Owner |             Storage              
--------+-----------+-------+-------+----------------------------------
 public | products1 | table | user1 | {
    
    orientation=row,compression=no}
 public | products2 | table | user2 | {
    
    orientation=row,compression=no}
 public | products3 | table | user3 | {
    
    orientation=row,compression=no}
(3 rows)

musicdb2=> 

おすすめ

転載: blog.csdn.net/qq_40220309/article/details/128070670