mysql权限管理

mysql权限

权限介绍

用户权限(user表)->数据库权限(db数据表)->主机权限(host表)->执行权限(procs_priv表)
用户权限(user表)->数据库权限(db数据表)->主机权限(host表)->表权限(tables_pri表)->列权限(columns_pri表)
和上面一样,从上到下,只要有一条符合就通过权限验证

用户(user)权限

记录允许连接到服务器的连接
全局权限控制

数据库(db表)权限

记录用户对数据库的操作权限

主机(host表)权限

记录某个主机对数据库的操作权限
配合db表可以做更加细致的控制

表(tables_priv)权限

用来设置用户对表的权限

列(columns_priv)权限

设置用户对列的权限

账户管理

grant与revoke

创建用户

创建方式1

create user 'username'@'host' [identified by 'PASSWORD'];#创建的用户不具有任何权限

创建方式2

grant <all|priv1,priv2,...privn> on [object]
[identified by 'password']
[with grant option];# 是否允许权限下放
object:table|function|procedure
grant option:
max_queries_per_hour count
max_updates_per_hour count
max_connections_per_hour count
max_user_connections count
创建用户并赋予权限
grant all on test.* 'jin'@'192.168.1.62' identified by '123456';#给予用户所有的权限
grant alter select,insert,update,delete,create,drop on test.* from 'jin'@'192.168.1.99';# 给予用户单个权限

删除用户

drop user 'jin'@'192.168.1.99';

查看用户权限

show grants for jin@192.168.1.99\G;#查看指定用户的权限
show grants;#查看自己的权限

刷新权限

在修改完用户的权限信息之后,需要刷新缓存才能生效

flush privileges;

添加用户权限

grant insert on test.t4 to jin@192.168.1.99;

移除用户权限

revoke insert on test.* from 'jin'@'192.168.1.99';
flush privileges;#刷新权限

设置用户密码

set password=password('123456');# 给用户自己设置密码
set password for jin@192.168.1.99=password('123456');#给指定用户设置密码
update mysql.user set password=password('12345') where User='jin' and Host='192.168.1.99'; #直接修改用户表,这个需要刷新权限菜能生效
mysqladmin -h 192.168.1.99 -ujin -p12345 password "123456"#使用mysqladmin命令工具改变密码

标签: mysql

添加新评论