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

openGauss每日一练第19天 |用户和角色管理

原创 zwtian 2022-12-12
299

今天是openGauss每日一练的第19天,通过昨天的学习,我们掌握了openGauss视图管理相关的内容,包括创建视图、删除视图、查询视图的信息、修改视图的信息。

今天我们来学习openGauss的用户和角色管理。使用create user创建的用户与使用create role创建的用户的区别在于,前者可以直接连接登录数据库,而使用create role创建的用户不能直接登录到数据库。必须添加LOGIN权限后,才能登录到数据库管理系统。删除用户,首先需要将用户拥有的数据库对象转移或者删除。

实验内容

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

omm=# CREATE TABLESPACE test10_tbs RELATIVE LOCATION 'tablespace/test_tbs1';
CREATE TABLESPACE
omm=# CREATE DATABASE testdb10 WITH TABLESPACE = test10_tbs;
CREATE DATABASE
omm=# \l
                         List of databases
   Name    | Owner | Encoding | Collate | Ctype | Access privileges 
-----------+-------+----------+---------+-------+-------------------
 omm       | omm   | UTF8     | C       | C     | 
 template1 | omm   | UTF8     | C       | C     | =c/omm           +
           |       |          |         |       | omm=CTc/omm
 testdb10  | omm   | UTF8     | C       | C     | 
(5 rows)

 postgres  | omm   | UTF8     | C       | C     | 
 template0 | omm   | UTF8     | C       | C     | =c/omm           +
           |       |          |         |       | omm=CTc/omm
omm=# \db
            List of tablespaces
    Name    | Owner |       Location       
------------+-------+----------------------
 pg_default | omm   | 
 pg_global  | omm   | 
 test10_tbs | omm   | tablespace/test_tbs1
(3 rows)

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

omm=# CREATE USER user10 IDENTIFIED BY 'kunpeng@1234';
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
omm=#  GRANT ALL ON DATABASE testdb10 TO user10;
GRANT
omm=# \du
                                                              List of roles
 Role name |                                                    Attributes                              
                      | Member of 
-----------+--------------------------------------------------------------------------------------------
----------------------+-----------
 gaussdb   | Sysadmin                                                                                   
                      | {}
 omm       | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmi
n, Policyadmin, UseFT | {}
 user1     |                                                                                            
                      | {}
 user10    |                                                                                            
                      | {}omm=# CREATE TABLE t1(col int);
CREATE TABLE
omm=#  CREATE TABLE t2(col int);
CREATE TABLE
omm=# \dt
                        List of relations
 Schema | Name | Type  | Owner |             Storage              
--------+------+-------+-------+----------------------------------
 public | t1   | table | omm   | {orientation=row,compression=no}
 public | t2   | table | omm   | {orientation=row,compression=no}
(2 rows)

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

 CREATE ROLE role10 IDENTIFIED BY 'kunpeng@1234';
 GRANT ALL ON DATABASE testdb10 TO role10;alter user role10 LOGIN;

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

--要删除用户user10,必须先表空间对象和数据库对象的属主修改为其他的用户,或者干脆将其删除:
alter database testdb10 owner to role10;
alter tablespace test10_tbs owner to role10;
--回收用户user10对testdb10数据库的权限:
REVOKE ALL ON DATABASE testdb10 FROM user10;
--在testdb10中属于用户user10的数据库对象的处理方法可以是:假如该对象还有用,可以将该对象转移给其他用户;假如该对象没有用,可以直接删除掉该对象                    
--删除表t1:
\c testdb10 user10
 drop table t1;
--将表t2转移给用户role10:
REASSIGN OWNED BY user10 to role10;

5、最后删除role10

--执行删除用户的操作,可以删除role10用户
gsql -r
drop user role10;


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

评论