GBASE 8A 管理员手册(4)安全管理

安全管理

密码安全管理

密码强度控制

密码复杂度受只读量password_format_option控制。
密码长度受只读变量password_min_length控制。
两个变量的值均为。时表示关闭密码强度控制。
密码强度控制对以下SQL类型生效:
create user [user] identified by 'pass';
alter user [user] identified by ' pass';
set password = password(' pass');
set password for [user] = password (' pass');
密码强度控制参数为只读变量,定义如下:
变量名	范围	含义
password_format_option	0-31	表示密码字符组合要求,默认值为0,表 示无复杂度要求。
组合中可包含数字(1)、小写字符(2)、 大写字符(4)、其它字符(8)中的1种 或多种。
1:表示必须包含数字。
2:表示必须包含小写字胃。
4:表示必须包含大写字胃。
8:表示必须包含其它字符。
16:表示不能和用户名相同。
要限定组合时配置为上述值的和,可以任 意组合。
例如:限定包含所有种类字符为 (1+2+4+8=15)。
对非英文字符,按其对应的ASII码范围 分类。
password_min_length	0-65535	表示密码的最短长度,默认值为0,表示 不限制长度。


密码重用控制

口令间隔控制参数为只读变量,定义如下:
变量名	范围	含义
password_reuse_max	0-100	默认值为0,表示不控制。正数值N表示允许的 口令间隔,间隔大于N才允许设置。

密码有效期控制

可选的密码策略:
1.	使用默认密码过期时间
默认密码过期时间为只读变量,定义如下:
变量名	范围	含义
password_life_time	0-65535	默认值为0,表示默认禁用密码过期。正数值 N表示密码过期天数,密码必须在N天后修改。
使用默认密码过期策略范例:
CREATE USER Jeffrey PASSWORD EXPIRE DEFAULT;//创建用户同时符合默认密码过期时 间
ALTER USER Jeffrey PASSWORD EXPIRE DEFAULT;//修改用户符合默认密码过期时间
2.	禁用密码过期策略:
此时密码将永不过期,范例:
CREATE USER Jeffrey PASSWORD EXPIRE NEVER;
ALTER USER Jeffrey PASSWORD EXPIRE NEVER;
3.	指定密码过期时间间隔:
设置密码过期的时间间隔为N天。范例:
CREATE USER Jeffrey PASSWORD EXPIRE INTERVAL 180 DAY;
ALTER USER Jeffrey PASSWORD EXPIRE INTERVAL 180 DAY;
4.	使密码立即过期:
使密码立即过期,范例:
CREATE USER Jeffrey PASSWORD EXPIRE;
ALTER USER Jeffrey PASSWORD EXPIRE;
用户密码过期配置下发到各coordinator节点,语法定义如下:
CREATE/ALTER USER
user [auth_option]
[expiration_option | lock_option | host_option] ...
expiration_option:	{
PASSWORD EXPIRE
|	PASSWORD	EXPIRE	DEFAULT
|	PASSWORD	EXPIRE	NEVER
|	PASSWORD	EXPIRE	INTERVAL	N DAY
}
1、	对不存在用户,使用create user时可以同时指定密码过期选项。
2、	对已存在用户,使用alter user更改用户时可指定密码过期选项。 用户密码过期时执行SQL会提示用户必须先修改密码,例如:
gbase> use test;
ERROR 1840	(HY000): You must reset your password using ALTER USER statement
before executing this statement.
密码过期设置会立即生效,如果指定了多个策略选项,最后一个生效。

用户安全管理

登录重试锁定

用户登录重试次数参数为只读变量,定义如下:
变量名	范围	含义
login_attempt_max	0-65535	默认值为0,表示禁用密码重试,不记录登录 信息。正数值N表示允许密码输错的次数,达 到次数则锁定用户账户。

账户锁定和解锁

用户账户锁定状态下发到各coordinator节点,语法定义如下:
CREATE/ALTER USER
user [auth_option]
[expiration_option | lock_option | host_option] ...
lock_option: {
ACCOUNT LOCK
| ACCOUNT UNLOCK
}
功能说明:
1、对不存在用户,使用create user时可以同时设置为锁定状态或非锁定 状态。
2、对已存在用户,使用alter user更改用户为锁定或非锁定状态。
已锁定的账户登录时提示用户锁定,拒绝登录,例如:
gbase -uuserl
ERROR 1830	(HY000): Access denied for user 'user1'@'%'. Account is locked.
如果指定了多个策略选项,最后一个生效。gbase用户不受锁定控制,可 以锁定解锁,锁定时依然允许登录。

账户限定host列表

CREATE/ALTER USER
user [auth_option]
[expiration_option | lock_option | host_option] ... host_option: {
hosts 'host_list'
}
默认host_list为空,此时登录无host限定。host_list的值可以为ip 或主机名,允许包含多个,使用空格“”分割,使用“%”和“_”做通配符(通 配符用法同原host功能)。登录的ip或主机名在列表中才允许用户登录。

审计策略

创建审计策略

CREATE AUDIT POLICY <audit_policy_name> [(<audit_policy_item> = <value>[,<audit_policy_item> = <value>])];
其中audit_policy_name为审计策略的名称,不区分大小写,存储时小写 保存,与资源池名类似,可包括大小写字胃、数字和下划线,不可以包含特殊 
符号,数字不可以作为第一个字胃;audit_policy_item为审计策略项目,审 计策略项目名称不区分大小写,目前支持的审计策略项目包括:
项目名称	取值&含义
Enable	Y:启用,默认值
	N:禁用
Hosts	“":不限制,默认值
	<host>:严格匹配host,支持空格""分隔的host 列表,host可使用“%"和“”做通配符
User	“":不限制,默认值
	<user> :严格匹配user,区分大小写
Db	“":不限制,默认值
	<db> :严格匹配db
Obj_type	“":不限制,默认值
	TABLE(VIEW) : Object 为表(视图)
	PROCEDURE: Object 为存储过程
	FUNCTION: Object 为函数
Object	“":不限制,默认值
	<object> :匹配 Obj_tpe 指定的 object
Sql_commands	“":不限制,默认值
	INSERT, DELETE, UPDATE, LOAD, CREATE_USER, CREATE_DB, CREATE_TABLE, CREATE_VIEW, CREATE_INDEX, CREATE_PROCEDURE, CREATE_FUNCTION, RENAME_USER, ALTER_DB, ALTER_TABLE, ALTER_PROCEDURE, ALTER_FUNCTION, ALTER_EVENT, DROP_USER, DROP_DB, DROP_TABLE, DROP_VIEW, DROP_INDEX, DROP_PROCEDURE, DROP_FUNCTION, DROP_EVENT, TRUNCATE, GRANT, REVOKE, SELECT, OTHERS :其中的一种或多种类型, 多个类型间以逗号连接,且不添加空格
Long_query_time	<ses〉:最小查询秒数,可带6位小数,精确到微秒,

	默认值0,取值范围为0~31536000
Status	“":不限制,默认值
	SUCCESS :执行成功
	FAILED:执行失败

修改审计策略

ALTER AUDIT POLICY <audit_policy_name> SET [(]<audit_policy_item> = <value>[,<audit_policy_item> = <value>] [)];
其中:
audit_policy_name为审计策略的名称,不区分大小写;
audit_policy_item为审计策略项目,取值内容与创建审计策略中描述相 同。

删除审计策略

DROP AUDIT POLICY <audit_policy_name>;

查看安全信息

user_check表结构如下:
列名	类型	Null	默认值	含义
host	char(60)	No	无	主机名,主键
user	char(16)	No	无	用户名,主键
attempt	smallint(5)
unsigned	No	0	密码重试次数
 
last_attempt	smallint(5)
unsigned	No	0	最近成功登录的重 试次数
locked	enum(' N','Y ')	No	N	用户是否锁定
password_expired	enum(' N','Y ')	No	N	密码是否过期
password last changed	datetime	No	无	最近密码修改时间
password_life_time	smallint(5)
unsigned	Yes	NULL	密码有效期,单位 天
password_history	varchar(500
0)	No	〃 〃	密码历史列表,密
文
host_list	varchar(500
0)	No	〃 〃	允许登录的host 列表
login time	datetime	Yes	NULL	本次登录时间
login host	char(60)	No	〃 〃	本次登录主机
last login time	datetime	Yes	NULL	最近登录时间
last login host	char(60)	No	〃 〃	最近登录主机
login count	bigint(8)	No	0	用户登录次数
查询用户的锁定和密码过期状态范例:

gbase> select Locked, password_expired from gbase. user_check where user userl';
+	+	+
| Locked | password_expired |
+	+	+
| N	| N
+	+	+

登录信息显示

变量名	范围	含义
show login status	0-1	默认值为0,表示关闭。1表示开启。
当幵启登录信息显示时,在用户登录时可以显示以下信息,范例如下:
Login info:
USER: root
LOGIN_TIME: 2017-10-25 09:33:00
LOGIN_HOST: localhost
LAST_LOGIN_TIME: 2017-10-24 15:22:04
LAST_LOGIN_HOST: localhost
LAST_ATTEMPT: 0
VALID_PASSWORD_EXPIRE:	1
新增语法show login status,用于显示用户自身的登录信息,范例如下:
gbase> show login status\G
USER: user1
LOGIN_TIME: 2017-10-25 09:38:50
LOGIN_HOST: localhost
LAST_LOGIN_TIME: 0000-00-00 00:00:00
LAST_LOGIN_HOST:
LAST_ATTEMPT: 0
VALID_PASSWORD_EXPIRE: 1

安全管理的权限

ALTER USER语法执行除修改自己密码外受CREATE USER权限控制,修改自 己密码不受权限控制。
查看安全信息受系统表gbase.user_check的SELECT权限控制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值