Mysql 创建账户

155 阅读2分钟

当需要给某个数据库创建用户,以及分配相应权限时,则需要用 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;