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

openGauss每日一练第4天 | openGauss创建角色、修改角色属性、更改角色权限和删除角色

原创 lxs_data 2021-12-04
1380

首先连接openGauss 数据库,连接命令如下:

root@modb:~# su - omm 

omm@modb:~$ gsql -r

1.创建角色role1为系统管理员, role2指定生效日期, role3具有LOGIN属性

首先列出所有数据库角色,语句如下:

omm=# \du
List of roles
Role name | Attributes
| Member of
-----------+--------------------------------------------------------------------------------
----------------------------------+-----------
gaussdb | Sysadmin
| {}
Operatoradmin, Policyadmin, UseFT | {}

omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin,

通过\du 命令可以查看到创建role 的 语句,

创建role1为系统管理员,语句如下:

omm=# CREATE ROLE role1 SYSADMIN IDENTIFIED BY 'lxs_data_123';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE

omm=# \du+          --可以看到有role1  这个角色

       role1 | Cannot login, Sysadmin

创建role2指定生效日期,语句如下:

omm=# CREATE ROLE role2 WITH LOGIN PASSWORD 'lxs_data_123' VALID BEGIN '2021-12-04' VALID UNTIL '2022-12-04';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE

omm=# \du+          --可以看到有role2  这个角色,且显示开始日期和失效日期

         role2 | Role valid begin 2021-12-04 00:00:00+08
| Role valid until 2022-12-04 00:00:00+08 


创建role3具有LOGIN属性,语句如下:

omm=# CREATE ROLE role3 LOGIN SYSADMIN IDENTIFIED BY 'data_r2818';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE

omm=# \du+          --可以看到有role3 这个角色,且没有显示Cannot login

        role3 | Sysadmin 


操作截图:




2.重命名role1

将role1 重命名为 rolelxs_data01,语句如下:

omm=# ALTER ROLE role1 RENAME TO rolelxs_data01;
NOTICE: MD5 password cleared because of role rename
ALTER ROLE

omm=# \du+          --可以看到role1没有了,有了rolelxs_data01

rolelxs_data01 | Cannot login, Sysadmin           

操作截图如下:



3.修改role2密码

将role2密码修改为:lxs_data_456,没有使用replace 参数,语句如下:

omm=# ALTER ROLE role2 IDENTIFIED BY 'lxs_data_456';
NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
ALTER ROLE

然后我再使用第二种加replace 参数修改角色密码,语句如下:

omm=# ALTER ROLE role2 IDENTIFIED BY 'lxs_data_789' replace 'lxs_data_456';

NOTICE: The encrypted password contains MD5 ciphertext, which is not secure.
ALTER ROLE

以上两种方式都可以实现修改密码

操作截图如下:



4.将omm权限授权给role3,再回收role3的权限

将omm权限授权给role3,语句如下:

omm=# GRANT omm to role3;        ------授予omm 权限给role3
GRANT ROLE

omm=# GRANT omm to role3 with admin option;  ------授予omm 权限给role3,同时赋予了role3 也可以把此权限授予其他角色或用户,详细解释见  WITH ADMIN OPTION 解释
GRANT ROLE

WITH ADMIN OPTION解释:

当声明了WITH ADMIN OPTION,被授权的用户可以将该权限再次授予其他角色或用户,以及撤销所有由该角色或用户继承到的权限。当授权的角色或用户发生变更或被撤销时,所有继承该角色或用户权限的用户拥有的权限都会随之发生变更。

将role3 omm权限回收,语句如下:

赋予权限如果带了with admin option,那么撤销需要考虑是 否加上ADMIN OPTION FOR,ADMIN OPTION 解释见赋权部分,

omm=# revoke omm from role3;
REVOKE ROLE

omm=# revoke ADMIN OPTION FOR omm from role3 ;
REVOKE ROLE

将role3 角色所有权限回收,语句如下:

omm=# REVOKE ALL PRIVILEGES FROM role3 ;
ALTER ROLE


操作截图如下:



5.删除所有创建角色,过程中使用\du或\du+查看角色信息

首先查看所有角色,命令如下:

查看数据库中所有角色,语句如下:

omm=# \du                 ---新建的角色有manager1、manager222、role2、role3、rolelxs_data01

                                                                        List of roles
Role name | Attributes
----------------+---------------------------------------------------------------------------
---------------------------------------+-----------+-------------
gaussdb | Sysadmin | {} |
manager1 | Cannot login| Member of | Description | {} |
omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} | | {} |
manager222 | Cannot login
role2 | Role valid begin 2021-12-04 00:00:00+08 +| {} |
| Role valid until 2022-12-04 00:00:00+08 | |
role3 | | {omm} |

rolelxs_data01 | Cannot login, Sysadmin | {} |                                                                     


omm=# \du+ rolelxs_data01         -----查看角色rolelxs_data01 的信息
List of roles
Role name | Attributes | Member of | Description
----------------+------------------------+-----------+-------------
rolelxs_data01 | Cannot login, Sysadmin | {} | 


删除新创建的角色:

删除角色语句如下:

omm=# drop role manager1;
DROP ROLE
omm=# drop role manager222;
DROP ROLE
omm=# drop role role2;
DROP ROLE
omm=# drop role role3;
DROP ROLE
omm=# drop role rolelxs_data01;
DROP ROLE


操作截图如下:


6、其他

create role 创建语法,可以参见官方文档:https://opengauss.org/zh/docs/2.1.0/docs/Developerguide/CREATE-ROLE.html

alter role 创建语法,可以参见官方文档:https://opengauss.org/zh/docs/2.1.0/docs/Developerguide/ALTER-ROLE.html


持续打卡中!!!

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

评论