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

openGauss每日一练第19天 | 学习心得体会

原创 英特纳熊奈尔 2022-12-12
159

一、作业

1、创建test10_tbs的表空间,在这个表空间中创建数据库testdb10:

(1)首先打开虚拟机上的opengauss数据库服务并进入数据库:

su - omm
gs_om -t start
gsql -d postgres -p 26000 -r
复制

(2)创建test10_tbs的表空间

CREATE TABLESPACE test10_tbs RELATIVE LOCATION 'tablespace/test10_tbs';
复制

(3)在这个表空间创建数据库testdb10

CREATE DATABASE testdb10 WITH TABLESPACE = test10_tbs;
复制

2、使用create user创建用户user10,登录数据库testdb10,创建测试表t1和t2:

(1)创建用户user9(因为我自己搭建的环境中已经存在uesr10,所以创建user9来测试)

 CREATE USER user9 IDENTIFIED BY 'kunpeng@1234';
 GRANT ALL ON DATABASE testdb10 TO user9;
复制

(2)登录到数据库testdb10

\c testdb10 user9
复制

(3)创建测试表t1和t2

CREATE TABLE t1
(  c_customer_sk             integer,   
  c_customer_id             char(5),    
  c_first_name              char(6),    
  c_last_name               char(8) 
) ;

CREATE TABLE t2
(  c_customer_sk             integer,   
  c_customer_id             char(5),    
  c_first_name              char(6),    
  c_last_name               char(8) 
) ;
复制

3、使用create role创建角色role10,登录数据库testdb10:

(1)使用create role 创建角色11

CREATE ROLE user11 IDENTIFIED BY 'kunpeng@1234';
  GRANT ALL ON DATABASE testdb TO user11;
复制

(2)登录到数据库testdb10

--使用用户user2尝试登录到数据库testdbgsql -d testdb  -U user11  -W kunpeng@1234 -r
复制

会发现报错,因为需要注意的是使用create role语句创建的用户(严格来说是角色,是权限的集合),目前还不被允许登录到openGauss数据库管理系统,所以用create user来创建用户,这样可以登录数据库。

4、将表t1直接删除,将前面创建的表空间和数据库、表t2转给role10,删除用户user10:

(1)删除t1表

(2)将前面创建的表空间和数据库、表t2转给role11

先将表空间对象和数据库对象的属主修改为其他的用户,或者干脆将其删除:

--先将表空间对象和数据库对象的属主修改为其他的用户,或者干脆将其删除:
 alter database testdb10 owner to user11;
alter tablespace test10_tbs owner to user11;
复制

然后收回权限

 REVOKE ALL ON DATABASE testdb10 FROM user9;
复制

(3)删除user9

drop user user9;
复制

5、最后删除role10:

drop role user11;
复制

因为role11刚刚被转给了表空间和数据库,需要删除的话,需要将这些继续转给其它角色或者用户,因为是测试,所以我这里直接删除这个表空间和表

drop database testdb10;
drop tablespace test10_tbs;
复制

然后再删除user11

drop role user11;
复制

使用 \du 命令可以看到已经成功删除


二、心得体会

通过第19天的学习,我掌握了openGauss的用户和角色管理。也了解到使用create user创建的用户与使用create role创建的用户的区别在于,前者可以直接连接登录数据库,而使用create role创建的用户不能直接登录到数据库。必须添加LOGIN权限后,才能登录到数据库管理系统,同时删除用户,首先需要将用户拥有的数据库对象转移或者删除,不然直接删除会报错,因为有依赖性。

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

评论

墨天轮-雪宝君
暂无图片
2年前
评论
暂无图片 0
作业审核合格,一起参与21天openGauss学习打卡活动! 活动详情:https://www.modb.pro/db/551619
2年前
暂无图片 点赞
评论
目录
  • 一、作业
    • 1、创建test10_tbs的表空间,在这个表空间中创建数据库testdb10:
      • (2)创建test10_tbs的表空间
      • (3)在这个表空间创建数据库testdb10
    • 2、使用create user创建用户user10,登录数据库testdb10,创建测试表t1和t2:
      • (1)创建用户user9(因为我自己搭建的环境中已经存在uesr10,所以创建user9来测试)
      • (2)登录到数据库testdb10
      • (3)创建测试表t1和t2
    • 3、使用create role创建角色role10,登录数据库testdb10:
      • (1)使用create role 创建角色11
      • (2)登录到数据库testdb10
    • 4、将表t1直接删除,将前面创建的表空间和数据库、表t2转给role10,删除用户user10:
      • (1)删除t1表
      • (2)将前面创建的表空间和数据库、表t2转给role11
      • (3)删除user9
    • 5、最后删除role10:
  • 二、心得体会