权限表
user、db、host、tables_priv、columns_priv、procspriv
创建用户
-- 1、省略密码,则用户登录时不能输入密码
create user 'test';
-- 2、省略访问主机名,主机名为%,表示允许任何主机登录
create user 'test' identified by 'mypass';
drop user 'test';
drop user 'test'@'%';
-- 3、用户名test,密码mypass,主机名localhost,指定主机名的用户,删除时必须指定相应的主机名
create user 'test'@'localhost' identified by 'mypass';
drop user 'test'@'localhost';
-- 4、使用密码散列值设置密码,避免使用明文密码,获取password的散列值
select password('mypass');
create user 'test'@'localhost' identified by '*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4';
-- GRANT语句创建用户及分配用户权限
-- 1、创建用户testUser,并授予用户对所有数据表的select,update权限
grant select,update on *.* to 'testUser'@'localhost' identified by 'testPass';
查询用户
-- 查询用户语句
select * from mysql.user;
删除用户
-- 使用drop语句删除用户
-- 1、删除单个用户
drop user 'test'@'%';
-- 2、删除多个用户
drop user 'test'@'%','test1'@'%';
-- 3、用户表中的所有用户
drop user;
-- 使用delete语句删除用户
delete from mysql.user where user = 'test' and Host = '%';
注意:drop user 不能自动关闭任何打开的用户对话,如果用户有打开对话,需要等到用户对话被关闭后才能生效。一旦对话被关闭,用户也被取消,此时用户再次试图登录时将会失败。
修改用户密码
-- root用户修改自己的密码
-- 1、修改MYSQL数据库的user表,需要使用flush重新加载权限表
update mysql.user set authentication_string = password("rootpwd") where user = "root" and host = "localhost";
flush privileges;
-- 2、使用SET语句修改root用户密码
set password=password("123456");