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

openGauss每日一练第4天|学习多个用户访问同一个数据库

原创 Heming 2022-11-27
1183

openGauss每日一练第4天

学习多个用户访问同一个数据库

创建数据库

切换到omm用户后,使用gsql -r连接数据库,执行CREATE DATABASE musicdb;创建数据库

omm=# CREATE DATABASE musicdb; CREATE DATABASE

创建数据库用户

创建密码都为Test@123的三个用户分别为user1、user2、user3:

omm=# CREATE USER user1 IDENTIFIED BY 'Test@123'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# CREATE USER user2 IDENTIFIED BY 'Test@123'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# CREATE USER user3 IDENTIFIED BY 'Test@123'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE

用户授权

执行ALTER USER <用户名> <权限名>;为三个用户授予SYSADMIN的数据库管理员权限,如:

omm=# ALTER USER user1 SYSADMIN; ALTER ROLE

可以使用\du元命令查看数据库用户和权限

切换用户访问数据库

通过元命令\c <数据库名> <用户名>可以以指定用户连接到指定数据库,如:

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(name char(20)); musicdb=> CREATE TABLE musicdb=> insert into t1 values('hello user1'); INSERT 0 1 musicdb=> select * from t1; name ---------------------- hello user1 (1 row)

查看表和表的所属用户

使用元命令\dt查看当前数据库的表和表的所属用户

musicdb=> \dt List of relations Schema | Name | Type | Owner | Storage --------+------+-------+-------+---------------------------------- public | t1 | table | user1 | {orientation=row,compression=no} (1 row)

课后作业

1.执行如下SQL完成用户创建和权限授予:

CREATE USER user1 IDENTIFIED BY 'Test@123'; CREATE USER user2 IDENTIFIED BY 'Test@123'; CREATE USER user3 IDENTIFIED BY 'Test@123'; ALTER USER user1 SYSADMIN; ALTER USER user2 SYSADMIN; ALTER USER user3 SYSADMIN;

2.执行如下完成用户切换和各自的表创建:

\c musicdb user1 CREATE TABLE products1(product_id INTEGER, product_name Char(20), category Char(30)); \c musicdb user2 CREATE TABLE products2(product_id INTEGER, product_name Char(20), category Char(30)); \c musicdb user3 CREATE TABLE products3(product_id INTEGER, product_name Char(20), category Char(30));

3.向表中插入数据:

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

4.查看数据库有那些表:

musicdb=> \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} public | t1 | table | user1 | {orientation=row,compression=no} (4 rows)

总结

使用CREATE USER <用户名> IDENTIFIED BY <密码> 可以创建数据库用户,密码有强度检测,使用ALERT USER <用户名> <权限名>可以授予用户权限,前提是执行该语句的用户的权限要足够大,一个实例可以拥有多个用户,在权限足够的情况下,用户可以访问不同的数据库和表,也可以创建表,创建出来的表会有用户记录。

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

评论