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

openGauss每日一练第 4 天 | 学习笔记

原创 海潮 2021-12-04
380

👉openGauss SQL学习参考

学习目标

学习openGauss创建角色、修改角色属性、更改角色权限和删除角色

课程学习

角色是用来管理权限的,从数据库安全的角度考虑,可以把所有的管理和操作权限划分到不同的角色上

连接openGauss

root@modb:~# su - omm omm@modb:~$ gsql -r

👉ALTER ROLE 语法

1.创建角色

-–列出所有数据库角色 omm=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------------------------------------------------------------+----------- gaussdb | Sysadmin | {} omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} --创建角色 manager1,密码 test_123 omm=# CREATE ROLE manager1 IDENTIFIED BY 'test_123'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# --原生 PG 语法 with password 不支持 IDENTIFIED BY --创建角色 manager2 密码 test_456 具有 LOGIN 属性且为系统管理员 omm=# CREATE ROLE manager2 LOGIN SYSADMIN IDENTIFIED BY 'test_456'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# --原生 PG 有 SUPERUSER 属性,无 SYSADMIN -–创建角色 manager3 密码 test_789 从20211210日生效,20211230日失效 omm=# CREATE ROLE manager3 WITH LOGIN PASSWORD 'test_789' VALID BEGIN '2021-12-10' VALID UNTIL '2021-12-30'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# --原生 PG 不支持 VALID BEGIN -–再次查看所有数据库角色 omm=# \du+ List of roles Role name | Attributes | Member of | Description -----------+------------------------------------------------------------------------------------------------------------------+-----------+------------- gaussdb | Sysadmin | {} | manager1 | Cannot login | {} | manager2 | Sysadmin | {} | manager3 | Role valid begin 2021-12-10 00:00:00+08 +| {} | | Role valid until 2021-12-30 00:00:00+08 | | omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} | omm=#

2.修改角色属性

--–修改角色 manage1 具有 LOGIN 属性且为系统管理员 omm=# ALTER ROLE manager1 SYSADMIN LOGIN; ALTER ROLE --查看manager1 omm=# \du+ manager1 List of roles Role name | Attributes | Member of | Description -----------+------------+-----------+------------- manager1 | Sysadmin | {} | omm=# --修改角色 manager2 密码 omm=# ALTER ROLE manager2 IDENTIFIED BY 'abcd@123' replace 'test_456'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. ALTER ROLE omm=# --此处可以不带 replace old_pass -–重命名 manager2 omm=# ALTER ROLE manager2 RENAME TO manager20; NOTICE: MD5 password cleared because of role rename ALTER ROLE omm=#

3.授权

-–将 omm 的权限授权给 manager1 omm=# GRANT omm to manager1 with admin option; GRANT ROLE omm=# omm=# \du+ List of roles Role name | Attributes | Member of | Description -----------+------------------------------------------------------------------------------------------------------------------+-----------+------------- gaussdb | Sysadmin | {} | manager1 | Sysadmin | {omm} | manager20 | Sysadmin | {} | manager3 | Role valid begin 2021-12-10 00:00:00+08 +| {} | | Role valid until 2021-12-30 00:00:00+08 | | omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} | omm=#

4.回收权限

omm=# revoke all privilege from manager1; ALTER ROLE omm=# omm=# \du+ List of roles Role name | Attributes | Member of | Description -----------+------------------------------------------------------------------------------------------------------------------+-----------+------------- gaussdb | Sysadmin | {} | manager1 | | {omm} | manager20 | Sysadmin | {} | manager3 | Role valid begin 2021-12-10 00:00:00+08 +| {} | | Role valid until 2021-12-30 00:00:00+08 | | omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} | omm=#

5.删除角色

omm=# drop role manager1; DROP ROLE omm=# drop role manager20; DROP ROLE omm=# drop role manager3; DROP ROLE omm=# omm=# \du+ List of roles Role name | Attributes | Member of | Description -----------+------------------------------------------------------------------------------------------------------------------+-----------+------------- gaussdb | Sysadmin | {} | omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} | omm=#

课后作业

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

omm=# CREATE ROLE role1 SYSADMIN ; ERROR: The password could not be NULL. --CREATE ROLE 必须有 PASSWORD , 原生 PG 可以不带 password 创建角色 omm=# CREATE ROLE role1 SYSADMIN IDENTIFIED BY 'test_789'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# CREATE ROLE role2 PASSWORD 'test_789' VALID BEGIN '2021-12-10' VALID UNTIL '2021-12-30'; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# CREATE ROLE role3 with LOGIN PASSWORD 'test_789' ; NOTICE: The encrypted password contains MD5 ciphertext, which is not secure. CREATE ROLE omm=# \du+ List of roles Role name | Attributes | Member of | Description -----------+------------------------------------------------------------------------------------------------------------------+-----------+------------- gaussdb | Sysadmin | {} | omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} | role1 | Cannot login, Sysadmin | {} | role3 | | {} | role2 | Cannot login +| {} | | Role valid begin 2021-12-10 00:00:00+08 +| | | Role valid until 2021-12-30 00:00:00+08 | | omm=#

2.重命名 role1

omm=# alter role role1 rename to role10; NOTICE: MD5 password cleared because of role rename ALTER ROLE omm=#

3.修改 role2 密码

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

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

omm=# grant omm to role3 with admin option; GRANT ROLE omm=# \du+ List of roles Role name | Attributes | Member of | Description -----------+------------------------------------------------------------------------------------------------------------------+-----------+------------- gaussdb | Sysadmin | {} | omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} | role10 | Cannot login, Sysadmin | {} | role2 | Cannot login +| {} | | Role valid begin 2021-12-10 00:00:00+08 +| | | Role valid until 2021-12-30 00:00:00+08 | | role3 | | {omm} | omm=# omm=# revoke all privilege from role3; ALTER ROLE omm=# omm=# \du+ List of roles Role name | Attributes | Member of | Description -----------+------------------------------------------------------------------------------------------------------------------+-----------+------------- gaussdb | Sysadmin | {} | omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} | role10 | Cannot login, Sysadmin | {} | role2 | Cannot login +| {} | | Role valid begin 2021-12-10 00:00:00+08 +| | | Role valid until 2021-12-30 00:00:00+08 | | role3 | | {omm} | omm=#

5.删除所有创建角色

omm=# drop role role10; DROP ROLE omm=# drop role role2; DROP ROLE omm=# drop role role3; DROP ROLE omm=# \du+ List of roles Role name | Attributes | Member of | Description -----------+------------------------------------------------------------------------------------------------------------------+-----------+------------- gaussdb | Sysadmin | {} | omm | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {} | omm=#
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论