MySQL 创建数据库、创建用户、授权用户

153

前言

一般地,当不同应用程序使用一个 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'@'%';