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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




