首先连接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权限回收,语句如下:
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
持续打卡中!!!




