MySQL 创建数据库、创建用户、授权用户
前言
一般地,当不同应用程序使用一个 MySQL 服务时需要使用不同的用户去操作数据表,否则当一个应用程序因为漏洞而泄露数据库账号密码时,可能会使其他应用程序的数据表遭受泄露,因此分权而治尤为重要。
相关操作
创建数据库
- 示例
CREATE DATABASE cloud
创建用户
CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
- 参数
- username: 创建的用户名
- host: 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
- password: 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
- 示例
CREATE USER 'cloud'@'%' IDENTIFIED WITH mysql_native_password BY 'HJRW6He2amE2pt4P';
查询用户信息
select user from mysql.user;
授权用户
GRANT privileges ON databasename.tablename TO 'cloud'@'%'
- 参数
- privileges: 用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所有的权限则使用ALL
- databasename: 数据库名,如果*代表所有数据库
- tablename: 表名,如果*代表所有数据表
- host: 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
- 示例
GRANT select,insert,update on cloud.* TO 'cloud'@'%'
刷新权限信息
FLUSH PRIVILEGES;
删除用户
DROP USER 'cloud'@'%';