当需要给某个数据库创建用户,以及分配相应权限时,则需要用 root 账户的权限进行登录设置
1、登录 Mysql 客户端 root 账户
mysql -u root -p -h 127.0.0.1
2、创建用户
create user '用户名'@'host' identified by '用户密码';
说明:
| host 名称 | 说明 |
|---|---|
| localhost | 本地登录 |
| % | 远程登录 |
3、修改用户密码
set password for '用户名'@'host' = password('新密码');
4、删除用户
drop user '用户名'@'host'
5、授权用户
-- 授权 select、insert、update、delete 权限
grant select on databaseName.tableName to 'userName'@'host';
grant insert on databaseName.tableName to 'userName'@'host';
grant update on databaseName.tableName to 'userName'@'host';
grant delete on databaseName.tableName to 'userName'@'host';
grant select, insert, update, delete on databaseName.tableName to 'userName'@'host';
-- 授权创建表、索引、视图、存储过程、函数等等权限
grant create on databaseName.tableName to 'userName'@'host';
grant alter on databaseName.tableName to 'userName'@'host';
grant drop on databaseName.tableName to 'userName'@'host';
grant references on databaseName.tableName to 'userName'@'host';
grant create temporary tables on databaseName.tableName to 'userName'@'host';
-- 授权操作索引权限
grant index on databaseName.tableName to 'userName'@'host';
-- 授权创建、查看视图权限
grant create view on databaseName.tableName to 'userName'@'host';
grant show view on databaseName.tableName to 'userName'@'host';
-- 授权创建、修改、执行存储过程和函数权限
grant create routine on databaseName.tableName to 'userName'@'host';
grant alter routine on databaseName.tableName to 'userName'@'host';
grant execute on databaseName.tableName to 'userName'@'host';
-- 授权某个数据库所有权限给用户
grant privileges on databaseName to 'userName'@'host';
-- 授权高级 DBA 管理 MySQL 中所有数据库的权限
grant all privileges *.* to 'userName'@'host';
6、查看当前登录用户授权权限
show grants;
7、撤销授权
使用 revoke 函数,只需要将 grant 函数语句中 to 改为 from 即可
revoke all *.* from 'userName'@'host';
8、grant option 参数作用
用户被授权某个权限后,该用户是不能把这个权限再授权给其他用户,但是可以使用 WITH GRANT OPTION 这个子句来让该用户可以将权限再授予给其他用户。
grant select on databaseName.tableName to 'userName'@'host' with grant option;
9、刷新权限
flush privileges;