Postgresql用户审核管理

规划

gpmon 监控 (数据库gpperfom权限)
gwtest03 业务访问用户 (业务库增删改查权限)
gwtest02 超级管理员用户 (所有权限)
gwtest01 管理员用户 (所有库的增删改权限)

1、用户创建

创建用户步骤(使用gwtest02用户):
postgres=# CREATE role gwtest03 with login;
CREATE ROLE

设置密码:
postgres=# alter user gwtest03 password '123456';
ALTER ROLE

赋予用户业务库的使用权限:
postgres=# GRANT all PRIVILEGES on database db1 to gwtest03;
GRANT

gwtest01  管理员用户   (所有库的增删改权限)

创建用户步骤(使用gwtest01用户):
postgres=# CREATE role gwtest01 with login;
CREATE ROLE

设置密码:
postgres=# alter user gwtest01 password '123456';
ALTER ROLE

赋予用户业务库的使用权限:
GRANT all PRIVILEGES on database database_name1 to gwtest01;
GRANT all PRIVILEGES on database database_name2 to gwtest01;
GRANT all PRIVILEGES on database database_name3 to gwtest01;

2、检查连接权限

通常情况下,我们数据库只允许gwtest02用户连接,加了新用户后,要添加远程连接权限

vi $DATA_DIRECTORY/pg_hba.conf
host    all     gwtest02    0.0.0.0/0     md5
local   all     gwtest02           md5

如果没有加,登录会报如下错误:

[gwtest02@gwtest03209 ~]$ psql -h 127.0.0.1 -U gwtest
psql: FATAL:  no pg_hba.conf entry for host "127.0.0.1", user "gwtest", database "postgres"

加上新建用户的连接权限:
host    all     gwtest    0.0.0.0/0     md5
local   all     gwtest           md5

pg_ctl reload 生效

3、postgresql密码检查passwordcheck

安装模块:
源码包自带功能,只需要将包配置加入到lib目录里即可,如下

vi postgresql.conf
shared_preload_libraries = '$libdir/passwordcheck'

然后重启pg
pg_ctl restart

示例:

postgres=# CREATE role gwtest03 with login;
CREATE ROLE

postgres=# alter user gwtest03 password '123456';
ERROR:  password is too short

postgres=# alter user gwtest03 password '1234567890';
ERROR:  password must contain both letters and nonletters

postgres=# alter user gwtest03 password 'dasfasfgghasf';
ERROR:  password must contain both letters and nonletters

postgres=# alter user gwtest03 password 'gwtest03#2022';
ERROR:  password must not contain user name

postgres=# alter user gwtest03 password 'Root@123';  
ALTER ROLE

4、密码尝试失败锁定

使用gwtest03 模拟登录五次失败

[postgres@hadoop01 ~]$ psql -Ugwtest03 -h127.0.0.1 -p123456 -d postgres
Password for user gwtest03:
psql: error: FATAL:  password authentication failed for user "gwtest03"
[postgres@hadoop01 ~]$ psql -Ugwtest03 -h127.0.0.1 -p123456 -d postgres
Password for user gwtest03:
psql: error: FATAL:  password authentication failed for user "gwtest03"
[postgres@hadoop01 ~]$ psql -Ugwtest03 -h127.0.0.1 -p123456 -d postgres
Password for user gwtest03:
psql: error: FATAL:  password authentication failed for user "gwtest03"
[postgres@hadoop01 ~]$ psql -Ugwtest03 -h127.0.0.1 -p123456 -d postgres
Password for user gwtest03:
psql: error: FATAL:  password authentication failed for user "gwtest03"
[postgres@hadoop01 ~]$ psql -Ugwtest03 -h127.0.0.1 -p123456 -d postgres
Password for user gwtest03:

用超级用户登录时会有提示:

[postgres@hadoop01 ~]$ psql -Upostgres -h127.0.0.1 -p18126 -d postgres
NOTICE:  user: gwtest03!
NOTICE:  failed_login_times: 5! failed_login: 5!
NOTICE:  Account gwtest03 is locked!
psql (12.8)
Type "help" for help.

postgres=# select rolcanlogin from pg_catalog.pg_roles where rolname='gwtest03';
 rolcanlogin
-------------
 f
(1 row)

再次去登录发现已经被锁住:

[postgres@hadoop01 ~]$ psql -Ugwtest03 -h127.0.0.1 -p123456 -d postgres
Password for user gwtest03:
psql: error: FATAL:  role "gwtest03" is not permitted to log in

解锁:

[postgres@hadoop01 ~]$ psql -Upostgres -h127.0.0.1 -p123456 -d postgres
psql (12.8)
Type "help" for help.

postgres=# alter user gwtest03 login;
ALTER ROLE

相关推荐

  1. Postgresql用户审核管理

    2024-03-21 17:00:09       43 阅读
  2. ubuntu 查看 postgresql 用户

    2024-03-21 17:00:09       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 17:00:09       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 17:00:09       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 17:00:09       87 阅读
  4. Python语言-面向对象

    2024-03-21 17:00:09       96 阅读

热门阅读

  1. 外贸人学会承诺式逼单!老外就爱这套!

    2024-03-21 17:00:09       41 阅读
  2. react native ts 接口返回列表渲染

    2024-03-21 17:00:09       45 阅读
  3. 在OAK-D S2相机上应用ORB_SLAM3

    2024-03-21 17:00:09       47 阅读
  4. 【教你如何制作一个简单的HTML个人网页】

    2024-03-21 17:00:09       44 阅读
  5. C#的自我修养

    2024-03-21 17:00:09       37 阅读
  6. Element-Plus Dropdown 下拉菜单样式修改

    2024-03-21 17:00:09       39 阅读
  7. Python 闭包

    2024-03-21 17:00:09       44 阅读
  8. 前端 js 经典:数组常用方法总结

    2024-03-21 17:00:09       40 阅读
  9. Flask开发webapi初步及过程问题探究

    2024-03-21 17:00:09       37 阅读
  10. MySQL中的锁(一)

    2024-03-21 17:00:09       42 阅读