MySQL创建用户以及授权
- 连接数据库
mysql -h 主机名(ip) -u 用户名 -P 端口 -p
说明:
-h: 主机名,表示要连接的数据库的主机名或者IP
-u: 用户名,表示连接数据库的用户名
-P: 端口,表示要连接的数据库的端口,默认是3306,可以不写,但是如果端口不是默认端口,就必须指明端口号
-p: 表示要连接的数据库的密码,-p后面可以直接输入密码,但是这样密码就会明文输入不太安全,所以建议输入-p回车,换行输入密码
- 查看用户
use mysql;
select user from user;
- 创建用户
create user 'zgh'@'%' identified by '123456'; --用户名 ; 可连接的IP地址,%代表全部 ;密码
- 授权
grant all privileges on stu.* to 'zgh'@'%'; -- 在任何IP连接时,赋予用户zgh查看数据库stu下所有表的权限
flush privileges; --刷新系统权限表
grant select, insert, update, delete on stu.* to 'zgh'@'%'; -- grant 查看、增加、更新、删除表中数据的权限。
grant create on stu.* to 'zgh'@'%'; -- grant 创建、修改、删除 MySQL 数据表结构权限。
grant alter on stu.* to 'zgh'@'%';
grant drop on stu.* to 'zgh'@'%';
grant references on stu.* to 'zgh'@'%'; -- grant 操作 MySQL 外键权限。
grant create temporary tables on stu.* to 'zgh'@'%'; -- grant 操作 MySQL 临时表权限。
- 移除用户权限
revoke all on book.* from stu; --取消用户数据库(表)的所有权限, *.* :所有数据库
revoke create on book.* from 'zgh'@'%'; -- 移除用户创建数据库的权限(insert、select、update、delete、alter、drop……)
- 修改用户
delete from mysql.user where user='[用户名]'; --删除用户
rename user '用户名'@'IP地址'; to '新用户名'@'IP地址'; --修改用户名
set password for '用户名'@'IP地址' = Password('新密码') --修改密码
- 查看指定用户权限
show grants for 'zgh'@'%';
权限说明:
all privileges 除grant外的所有权限
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 由复制从属使用