第 19 天打卡,每逢周一,精力难免会有些不够用。今天课程的目标是掌握 openGauss 的用户和角色管理。
在线文档对用户的描述如下:
使用CREATE USER和ALTER USER可以创建和管理数据库用户。openGauss包含一个或多个已命名数据库。用户和角色在整个openGauss范围内是共享的,但是其数据并不共享。即用户可以连接任何数据库,但当连接成功后,任何用户都只能访问连接请求里声明的那个数据库。
非三权分立下,openGauss用户帐户只能由系统管理员或拥有CREATEROLE属性的安全管理员创建和删除。三权分立时,用户帐户只能由初始用户和安全管理员创建。
在用户登录openGauss时会对其进行身份验证。用户可以拥有数据库和数据库对象(例如表),并且可以向用户和角色授予对这些对象的权限以控制谁可以访问哪个对象。除系统管理员外,具有CREATEDB属性的用户可以创建数据库并授予对这些数据库的权限。
下面是作业内容。
作业
1. 创建 test10_tbs 的表空间,在这个表空间中创建数据库 testdb10
su - omm
gsql -r
CREATE TABLESPACE test10_tbs RELATIVE LOCATION 'tablespace/test10_tbs1';
CREATE DATABASE testdb10 WITH TABLESPACE = test10_tbs;

2. 使用 create user 创建用户 user10,登录数据库 testdb10,创建测试表 t1 和 t2
CREATE USER user10 IDENTIFIED BY 'kunpeng@1234';
GRANT ALL ON DATABASE testdb10 TO user10;
ALTER USER user10 SYSADMIN;
\q
gsql -d testdb10 -U user10 -W kunpeng@1234 -r
CREATE TABLE test1(col int);
CREATE TABLE test2(col int);

3. 使用 create role 创建角色 role10,登录数据库 testdb10
\q
gsql -r
CREATE ROLE role10 IDENTIFIED BY 'kunpeng@1234';
GRANT ALL ON DATABASE testdb10 TO role10;
alter user role10 LOGIN;
\du
\q
gsql -d testdb10 -U role10 -W kunpeng@1234 -r

4. 将表 t1 直接删除,将前面创建的表空间和数据库、表 t2 转给 role10,删除用户 user10
\c testdb10 user10
\dt
drop table test1;
alter database testdb10 owner to role10 ;
alter tablespace test10_tbs owner to role10 ;
revoke all on database testdb10 from user10;
reassign owned by user10 to role10 ;
\dt
\l
\q
gsql -r
drop user user10;


5. 最后删除 role10
\q
gsql -r
drop database testdb10 ;
drop tablespace test10_tbs ;
drop role role10;

命令
1. 授权登陆
alter user user2 LOGIN;
2. 回收权限
REVOKE ALL ON DATABASE testdb FROM user2;
3. 将表转移用户
REASSIGN OWNED BY user2 to user1;
总结
顶着发烧,终于把作业做完了,yeah!
附录:历史打卡记录
openGauss 每日一练第 1 天|openGauss 数据库状态查看
openGauss 每日一练第 2 天|学习 openGauss 客户端工具 gsql 的使用
openGauss 每日一练第 3 天|openGauss 中一个数据库集簇对应多个数据库
openGauss 每日一练第 4 天|openGauss 中一个数据库可以被多个用户访问
openGauss 每日一练第 5 天|openGauss 中一个用户可以访问多个数据库
openGauss 每日一练第 6 天|openGauss 中用户一次只能连接到一个数据库
openGauss 每日一练第 7 天|openGauss 中一个数据库中可以创建多个模式
openGauss 每日一练第 8 天|openGauss 中一个数据库可以存储在多个表空间中
openGauss 每日一练第 9 天|openGauss 中一个表空间可以存储多个数据库
openGauss 每日一练第 10 天|openGauss 逻辑结构:表空间管理
openGauss 每日一练第 11 天|openGauss 逻辑结构:数据库管理
openGauss 每日一练第 12 天|openGauss 逻辑结构:模式管理
openGauss 每日一练第 13 天|openGauss 逻辑结构:表管理 1
openGauss 每日一练第 14 天|openGauss 逻辑结构:表管理 2
openGauss 每日一练第 15 天|openGauss 逻辑结构:表管理 3
openGauss 每日一练第 16 天|openGauss 逻辑结构:表管理 4




