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,所有主机均可访问通配符%。