mysql创建用户及授权
创建本地账号
create user 'egon1'@'localhost' identified by '123'; # mysql -uegon1 -p123
创建远程账号
create user 'egon2'@'192.168.31.10' identified by '123'; # mysql -uegon2 -p123 -h 服务端ip
create user 'egon2'@'192.168.31.%' identified by '123'; # mysql -uegon2 -p123 -h 服务端ip,能在31网段的任意服务器上登录sql
授权
user:*.* 所有库表
select * from mysql.user # 查看用户信息
grant select on *.* to 'egon1'@'localhost' # 给egon1授权select所有表的权限
grant all privileges on *.* to 'egon1'@'localhost'
revoke select on *.* from 'egon1'@'localhost' # 回收权限
db:* 某个库
select * from mysql.db\G # 查看db信息
grant select on db1.* to 'egon1'@'localhost' ; # 授权egon1只对db1有查询权限
revoke select on db1.* from 'egon1'@'localhost' ;
tables_priv:db1.t1 某个表
select * from mysql.tables_priv\G # 查询表权限信息,未设时该表为空
grant select on db1.t1 to 'egon1'@'localhost' ; # 授权egon1只对db1.t1有查询权限
revoke select on db1.*t1 from 'egon1'@'localhost'
columns_priv: 某列
select * from mysql.columns_priv; # 查询列权限信息,未设时该表为空
grant select(id,name),update(age) on db1.t1 to 'egon1'@'localhost' ;
权限有以下种类:
all privileges 除grant外的所有权限 select 仅查权限 select,insert 查和插入权限 ... usage 无访问权限 alter 使用alter table alter routine 使用alter procedure和drop procedure create 使用create table create routine 使用create procedure create temporary tables 使用create temporary tables create user 使用create user、drop user、rename user和revoke all privileges create view 使用create view delete 使用delete drop 使用drop table execute 使用call和存储过程 file 使用select into outfile 和 load data infile grant option 使用grant 和 revoke index 使用index insert 使用insert lock tables 使用lock table process 使用show full processlist select 使用select show databases 使用show databases show view 使用show view update 使用update reload 使用flush shutdown 使用mysqladmin shutdown(关闭MySQL) super 使用change master、kill、logs、purge、master和set global。还允许mysqladmin调试登陆 replication client 服务器位置的访问 replication slave 由复制从属使用