MySQL创建普通用户

<h3 id="创建普通用户">创建普通用户

在创建用户之前,通过SELECT语句,查看mysql.user表中有哪些用户 查询结果

这里写图片描述

可以看出,user表中只有一个root用户信息 由于,MySQL中存储的数据较多,通常一个root用户,是无法管理这些数据的,因此,需要创建多个普通用户,来管理不同的数据

创建普通用户有三种方式

<h3 id="grant语句">GRANT语句

使用GRANT语句创建用户 GRANT语句,不仅可以创建新用户,还可以对用户进行授权,该语句会自动加载权限表,不需要手动刷新,而且安全、准确、错误少,因此,使用GRANT语句是创建用户最常用的方法

<h3 id="语法格式">语法格式

GRANT privileges ON database.table TO ‘username’ @’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’] [,’username’ @’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]]……

<h3 id="参数说明">参数说明

privileges,表示该用户,具有的权限信息 Database.table,表示新用户的权限范围表,可以在指定的数据库、表上使用自己的权限 username,是新用户的名称 hostname,是主机名 password,是新用户的密码

使用GRANT语句,创建一个新用户,用户名为user1、密码为123,并授予该用户chapter08.student表的查询权限 GRANT SELECT ON chapter08.student TO ‘user1’ @’localhost’ INDENTIFIED BY ‘123’;

这里写图片描述

使用SELECT语句,验证用户是否创建成功

这里写图片描述

可以看出,创建了一个新用户user1,但是,密码显示的不是123,而是一串字符,因为,在创建用户时,会对用户的密码自动进行加密,提高数据的安全性

注意,用户使用GRANT语句,创建新用户时,必须有GRANT权限

<h3 id="create-user语句">CREATE USER语句

使用CREATE USER语句创建用户 使用CREATE USER语句,创建新用户时,服务器会自动修改相应的授权表 注意,用于使用GRANT语句创建新用户时,必须有GRANT权限

<h3 id="语法格式-1">语法格式

CREATE USER ‘username’@’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’] [,’username’@’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]]……

<h3 id="参数说明-1">参数说明

username,表示新创建的用户名 hostname,表示主机名 IDENTIFIED BY,用于设置用户的密码 Password,表示用户的密码 PASSWORD,表用使用哈希值设置密码,该参数是可选的,如果,密码是一个普通的字符串,就不需要使用PASSWORD关键字

使用CREATE USER语句,创建一个新用户,用户名为user2,密码为123

这里写图片描述

可以看出,创建了一个user2用户 注意 如果,添加的用于已经存在,那么执行CREATE USER语句时,会报错

这里写图片描述

<h3 id="insert语句">INSERT语句

使用INSERT语句创建用户 MySQL中,不管是CREATE USER还是GRANT语句,在创建用户时,实际上都是在user表中,添加一条新的记录 因此,可以使用INSERT语句,直接在该表中添加一个用户

<h3 id="语法格式-2">语法格式

INSERT INTO mysql.user(Host,User,Password,ss1_cipher,x509_issuer,x509_subject) VALUES (‘hostname’,’username’,PASSWORD (‘password’),”,”);

<h3 id="参数说明-2">参数说明

Mysql.user,表示操作的表 Host、User、Password、ssl_cipher、x509_issuer、x509_subject为相应的字段 PASSWORD(),是一个加密函数,用于给密码加密

注意,使用INSERT语句创建用户时,只需添加Host、User和Password这三个字段,即可,其他的字段取其默认值 但是,由于ssl_cipher、x509_issuer、x509_subject字段是没有默认值的,因此,INSERT语句创建用户时,还需要为这几个字段设置初始值

使用INSERT语句,在mysql.user表中创建一个新用户,用户名为user3,密码为123

这里写图片描述

可以看出,创建了一个新用户user3 但是,由于INSERT语句没有刷新权限表的功能,因此,user3用户暂时是不能使用的,为了让当前用户生效,需要手动刷新当前的权限表,或者重新启动MySQL服务

<h3 id="flush-privileges">FLUSH PRIVILEGES

刷新权限表的语句 FLUSH PRIVILEGES;

这里写图片描述

刷新之后,就可以使用user3用户,登录MySQL数据库了

相关文章

在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信...
&gt; [合辑地址:MySQL全面瓦解](https://www.cnblogs.c...
物理服务机的CPU、内存、存储设备、连接数等资源有限,某个时...
1 回顾 上一节我们详细讲解了如何对数据库进行分区操作,包括...
navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...