设置帐户安全策略(主机)
GaussDB为帐户提供了自动锁定和解锁、手动锁定异常帐户和删除不再使用的帐户等一系列的安全措施,保证数据的使用安全。
配置项 | 描述 | 配制方法 |
帐户自动锁定和解锁 | 为了保证帐户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该帐户,默认值为10。次数设置越小越安全,但是在使用过程中会带来不便。 当帐户被锁定时间超过设定值(password_lock_time),则当前帐户自动解锁,默认值为1天。时间设置越长越安全,但是在使用过程中会带来不便。 说明: 当failed_login_attempts设置为0时,表示不限制密码错误次数。当password_lock_time设置为0时,表示即使超过密码错误次数限制导致账户锁定,也会在短时间内自动解锁。因此,只有两个配置参数都为正数时,才可以进行常规的密码失败检查、帐户锁定和解锁操作。 这两个参数的默认值都符合安全标准,您可以根据需要重新设置参数,提高安全等级。建议您使用默认值。 | 配置failed_login_attempts参数。 查看已配置的参数。 POSTGRES=# show failed_login_attempts; failed_login_attempts ----------------------- 10 (1 row) 如果显示结果不为10,执行如下命令设置成默认值10。 gs_guc reload -c failed_login_attempts=10 配置password_lock_time参数。 查看已配置的参数。 POSTGRES=# show password_lock_time; password_lock_time ----------------------- 1 (1 row) 如果显示结果不为1,执行如下命令设置成默认值1。 gs_guc reload -c password_lock_time=1 |
帐户过期自动失效 | 系统管理员在创建帐户时可以设置帐户过期时间,这样,当超过过期时间,帐户的操作权限会被自动取消。 系统管理员也可以通过ALTER USER命令修改帐户过期时间,该过期帐户重新生效。 注意: 只有认证方法是口令模式,帐户过期设置功能才能起生效。 | 以设置帐户user1无效时间为'2012-10-12 18:00:00'为例,命令格式如下: CREATE USER user1 IDENTIFIED BY 'user123@123' VALID UNTIL 'Oct 12 18:00:00 2012 +8'; 以修改帐户user1无效时间为'2012-12-12 18:00:00'为例,命令格式如下: ALTER USER user1 IDENTIFIED BY 'user123@234' VALID UNTIL 'Dec 12 18:00:00 2012 +8'; 说明: 修改帐户过期时间的同时,必须重新设置新密码,否则会执行失败。 |
手动锁定和解锁帐户 | 若管理员发现某帐户被盗、非法访问等异常情况,可手动将该帐户锁定。 当管理员认为帐户恢复正常后,可手动将该帐户解锁。 | 以手动锁定和解锁用户user_read为例,命令格式如下: 手动锁定:ALTER USER user_read ACCOUNT LOCK; 手动解锁:ALTER USER user_read ACCOUNT UNLOCK; |
删除不再使用的帐户 | 当确认帐户不再使用,管理员可以删除帐户。该操作不可恢复。 删除帐户时,您需要注意以下事项: 当删除的用户正处于活动状态时,会话状态断开后会自动删除。 不能从备机删除用户。 | 以删除帐户user_write为例,命令格式如下: DROP USER user_write cascade; |
设置帐户安全策略(备机)
GaussDB为帐户提供了自动锁定和解锁、手动锁定异常帐户和删除不再使用的帐户等一系列的安全措施,保证数据的使用安全。
配置项 | 描述 | 配制方法 |
帐户自动锁定和解锁 | 为了保证帐户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该帐户,默认值为10。次数设置越小越安全,但是在使用过程中会带来不便。 当帐户被锁定时间超过设定值(password_lock_time),则当前帐户自动解锁,默认值为1天。时间设置越长越安全,但是在使用过程中会带来不便。 为保证账户安全,需设置备机账户最大个数(standby_max_users),默认值为20个。 主机的账户锁定信息会同步到备机,备机的账户锁定信息不会影响主机。 数据库安装用户不会被锁定。 | 配置failed_login_attempts参数。 查看已配置的参数。 POSTGRES=# show failed_login_attempts; failed_login_attempts ----------------------- 10 (1 row) 如果显示结果不为10,执行如下命令设置成默认值10。 gs_guc reload -c failed_login_attempts=10 配置password_lock_time参数。 查看已配置的参数。 POSTGRES=# show password_lock_time; password_lock_time ----------------------- 1 (1 row) 如果显示结果不为1,执行如下命令设置成默认值1。 gs_guc reload -c password_lock_time=1 配置standby_max_users参数。 查看已配置的参数。 POSTGRES=# show standby_max_users; standby_max_users ----------------------- 20 (1 row) 如果显示结果不为20,执行如下命令设置成默认值20,重启数据库生效。 gs_guc reload -c standby_max_users=20 |
帐户过期自动失效 | 系统管理员在创建帐户时可以设置帐户过期时间,这样,当超过过期时间,帐户的操作权限会被自动取消。 系统管理员也可以通过ALTER USER命令修改帐户过期时间,该过期帐户重新生效。 注意: 只有认证方法是口令模式,帐户过期设置功能才能起生效。上述操作只能在主机设定,备机会同步主机账户信息。 | 以设置帐户user1无效时间为'2012-10-12 18:00:00'为例,命令格式如下: CREATE USER user1 IDENTIFIED BY 'user123@123' VALID UNTIL 'Oct 12 18:00:00 2012 +8'; 以修改帐户user1无效时间为'2012-12-12 18:00:00'为例,命令格式如下: ALTER USER user1 IDENTIFIED BY 'user123@234' VALID UNTIL 'Dec 12 18:00:00 2012 +8'; 说明: 修改帐户过期时间的同时,必须重新设置新密码,否则会执行失败。 |
手动锁定、解锁帐户和 查看备机账户锁定状态 | 若管理员发现某帐户被盗、非法访问等异常情况,可手动将该帐户锁定。 当管理员认为帐户恢复正常后,可手动将该帐户解锁。 | 以在备机手动锁定和解锁用户user_read为例,命令格式如下: 手动锁定:SELECT pg_standby_lock_user(uid); 手动解锁:SELECT pg_standby_unlock_user(uid); 手动解除所有锁定:SELECT pg_standby_unlock_alluser(); 查看备机锁定状态:SELECT * FROM pg_standby_user_status(); 说明: 其中uid为user_read用户oid,可通过 SELECT oid FROM pg_authid WHERE rolname = 'USER_READ'; 获取。只有超级用户才能手动锁定和解锁账户,超级用户锁定的账户,不能自动解锁。 |
删除不再使用的帐户 | 当确认帐户不再使用,管理员可以删除帐户。该操作不可恢复。 删除帐户时,您需要注意以下事项: 当删除的用户正处于活动状态时,会话状态断开后会自动删除。 不能从备机删除用户。 注意: 账户删除操作只能在主机进行,其影响会同步到备机。 | 以删除帐户user_write为例,命令格式如下: DROP USER user_write cascade; |