MySQL授权

Nov 2, 2020 · 1 min read

创建数据库

create database <database> default character set utf8mb4 collate utf8mb4_unicode_ci;

参数说明:

<database>: 数据库名称

用户管理

添加用户

create user '<username>'@'<host>' identified by '<password>'

例子:

create user 'xiaoming'@'localhost' identified by '123';
create user 'xiaoming'@'192.168.1.2' idendified by '';
create user 'xiaoming'@'%' identified by '123';
create user 'xiaoming'@'%';

参数说明:

<username>: 用户名称

<host>: 可以访问的主机IP地址,私有用户可用localhost,所有主机均可访问通配符%

<password>: password:登陆密码,如果为空则不需要密码登录。

授予用户权限

对于新建的 MySQL 用户,必须给它授权,可以用 GRANT 语句来实现对新建用户的授权。下面是简单的使用方式,了详情可以参考官方文档GRANT Statement

grant <priv_type> on <object_type> to '<username>'@'<host>';

例子:

grant all on school.* to 'xiaoming'@'localhost';
grant select,insert on school.student to 'xiaoming'@'192.168.1.2';
flush privileges; --执行grant语句以后必须执行此命令刷新授权才能生效

参数说明:

<priv_type>:

  • SELECT:授予用户可以使用 SELECT 语句进行访问特定表的权限。
  • INSERT:授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限。
  • DELETE:授予用户可以使用 DELETE 语句从一个特定表中删除数据行的权限。
  • DROP:授予用户可以删除数据表的权限。
  • UPDATE:授予用户可以使用 UPDATE 语句更新特定数据表的权限。
  • ALTER:授予用户可以使用 ALTER TABLE 语句修改数据表的权限。
  • CREATE:授予用户可以使用特定的名字创建一个数据表的权限。
  • ALL 或 ALL PRIVILEGES:所有的权限名。

<object_type>:

  • *:表示当前数据库中的所有表。
  • .:表示所有数据库中的所有表。
  • database.*:表示某个数据库中的所有表,databse为数据库名称。
  • database.obj_name:表示数据库中某个对象,obj_name为表、视图、存储过程或函数的名称。

<username>: 用户名称

<host>: 可以访问的主机IP地址,私有用户可用localhost,所有主机均可访问通配符%

Bang
Authors
Professor of Artificial Intelligence
My research interests include distributed robotics, mobile computing and programmable matter.