MySQL:账户管理

 

目录

一、创建帐号与授权

二、回收权限

三、修改账户密码

四、删除账号

五、账号资源限制

六、刷新权限


  • MySQL使用用户名+IP作为用户(即相同的用户名,从不同的IP连接,被视为不同的用户)
  • 用户在登录时,进行相应的权限赋予,在此权限下操作。
  • 权限表在启动的时候载入内存。
select * from mysql.user;       # 用户的全局权限
select * from mysql.db;	        # 用户的数据库权限
select * from mysql.host;	# 主机的数据库权限,新版已弃用。
select * from mysql.tables_priv;	# 用户的表权限
select * from mysql.columns_priv;	# 用户的列权限
  • 权限的顺序:user->db->tables_priv->columns_priv(即user表存在相应的权限,则不再检查后续的权限表。)
# 查看指定用户的权限
show grants for 'jangle'@'%'; 
select * from information_schema.schema_privileges where GRANTEE = "'jangle'@'%'";

一、创建帐号与授权

# 创建用户与授权
GRANT priv_type [(column_list)][,priv_type[(column_list)]] ...
ON [objcect_type] {tbl_name|*|*.*|db_name.*}
TO user_name@_host [IDENTIFIED BY [PASSWORD] 'password'] 
[WITH GRANT OPTION]
# 创建用户与授权(选项说明)
priv_type = USAGE|SELECT|UPDATE|DELETE|INSERT|CREATE|ALTER|DROP|INDEX|ALL PRIVILEGES... #登录权限|查询权限|更新权限|删除权限|插入权限|创建库表权限|修改库表权限|删除库表权限|创建索引权限|全部权限|...
priv_type = super|process|file #管理权限。
object_type = TABLE|FUNCTION|PROCEDURE	#可选项
user_name@_host # 必填:用户,mysql对于相同用户名但不统的IP地址则视为不同的用户。即'jangle'@'%' 与 'jangle'@'localhost' 是2个用户。
[IDENTIFIED BY [PASSWORD] 'password'] #可选项:如果进行密码设置,则会同步进行用户创建。否则若用户不存在,会报错。
[WITH GRANT OPTION] #可选项:该用户是否能授予其他人这些权限。即权限的传递权。
# 创建用户与授权(例子)
grant select,update,insert,delete on demo.* to 'jangle_demo_test'@'%' IDENTIFIED by '1' with grant option ;#创建用户jangle_demo_test并授予demo数据库【增删改查】的权限,设置密码为1,且该用户可以将【增删改查】的权限授予其他用户
grant select(id),update(mail_result) on demo.bs_mail to  'jangle_demo_test'@'%'; #给demo数据库的bs_mail表的指定列授权。

二、回收权限

# 回收权限
REVOKE priv_type [(column_list)][,priv_type[(column_list)]]...
ON [object_type]{tbl_name|*|*.*|db_name.*}
FROM user[,user]...
# 回收权限(选项说明)
priv_type = SELECT|UPDATE|DELETE|INSERT|ALL PRIVILEGES|GRANT OPTION|... #查询权限|更新权限|删除权限|插入权限|所有权限|传递授权的权限|...
user[,user]... #可以同时回收多个用户的权限
# 回收权限(例子)
REVOKE ALL PRIVILEGES,GRANT OPTION FROM 'jangle_demo_test'@'%';	#回收jangle_demo_test用户的所有权限,以及授权传递的权限
REVOKE SELECT,UPDATE,DELETE,INSERT ON demo.* FROM 'jangle_demo_test'@'%';		#回收jangle_demo_test用户在demo数据库所有表的查询,更新,删除,插入权限。

三、修改账户密码

# 修改账户密码 ,有多种方式,推荐使用一下方式:
GRANT USAGE ON *.* TO 'jangle_demo_test'@'%' IDENTIFIED BY '2';	#明文密码
GRANT USAGE ON *.* TO 'jangle_demo_test'@'%' IDENTIFIED BY PASSWORD '*E6CC90B878B948C35E92B003C792C46C58C4AF40'; #版本不同用的密文不一样
SET PASSWORD = PASSWORD('2');	#设置自己的密码
SET PASSWORD = '*E6CC90B878B948C35E92B003C792C46C58C4AF40'; #密文设置,设置自己的密码

四、删除账号

# 删除用户
DROP USER 'jangle_demo_test'@'%';

五、账号资源限制

# 帐号资源限制
GRANT SELECT ON 'jangle_demo_test'@'%' WITH {MAX_QUERIES_PER_HOUR|MAX_UPDATES_PER_HOUR|MAX_CONNECTIONS_PER_HOUR|MAX_USER_CONNECTIONS} count;
# MAX_QUERIES_PER_HOUR :每小时最大查询次数。
# MAX_UPDATES_PER_HOUR :每小时最大更新次数。
# MAX_CONNECTIONS_PER_HOUR :每小时最大连接次数。
# MAX_USER_CONNECTIONS :最大用户连接数(最大并发数)。
# count : 数字,次数。
# root使用 FLUSH USER_RESOURCES|FLUSH PRIVILEGES|mysqladmin reload 可将累计的次数清零。

六、刷新权限

# 刷新权限 当通过对数据表进行直接操作时,需要刷新内存中的权限。
FLUSH PRIVILEGES;  # 该刷新操作还会重置资源限制的次数。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值