创建普通用户

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

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

创建普通用户有三种方式

GRANT语句

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

语法格式

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

参数说明

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权限

CREATE USER语句

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

语法格式

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

参数说明

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

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

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

INSERT语句

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

语法格式

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

参数说明

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服务

FLUSH PRIVILEGES

刷新权限表的语句
FLUSH PRIVILEGES;

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

MySQL创建普通用户相关推荐

  1. lnmp下mysql创建新用户授权后登录报错 1045 Access denied for user 'name'@'localhost

    报错:1045 Access denied for user 'name'@"localhost' (using password: YES) 问题:mysql创建新用户授权后远程登录用户时 ...

  2. mysql创建新用户

    学习目标: 提示:通过学习mysql创建新用户,掌握mysql的基本命令 学习内容: 提示:mysql创建新用户 例如: 进入mysql终端. use mysql;使用mysql数据库. 新建MySQ ...

  3. MySQL创建只读用户

    目录 MySQL创建只读用户 MySQL 5.7 MySQL 8.0 MySQL创建只读用户 应用场景:只要公司有数据团队的,直接给root权限操作,未免有点危险,于是只能给设权限,一般而言,他们只是 ...

  4. BOS项目01_02_项目的相关概述、MySQL创建新用户并授权、数据库环境的配置、Mysql命令行

    系列文章目录 文章目录 系列文章目录 前言 一.项目的相关概述 二.数据库环境的配置--MySQL创建新用户并授权 前言 我们这里的BOS系统是指: 物流业务操作系统 一.项目的相关概述 1.1> ...

  5. Mysql创建数据库用户

    Mysql为数据库创建用户 通常情况下我们在编写代码的过程中(也就是在开发过程中),一直使用的是我们本地的mysql,而且用户都是root用户,最高权限的用户,但是我们如果在公司上班的时候,公司的领导 ...

  6. mysql创建新用户方法_Mysql创建新用户方法

    1.       CREATE USER 语法: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 例子: CREATE USER 'do ...

  7. mysql 创建新用户权限_MySQL创建新用户以及权限授予

    1.通过mysql数据库的user表查看用户相关信息 mysql> use mysql; mysql> select host,user from user; 查看用户相关信息 2.创建数 ...

  8. postfix + dovecot + mysql 创建虚拟用户(一)

    背景 有这么一个需求:自己搞一套邮件系统,类似于简化的qq邮件,包括简单的邮件发送和邮件账户管理. 那么这个需求中最重要的一点就是邮件的发送. 从某度中得知:linux上有个邮件服务器挺好用的,叫做p ...

  9. mysql创建新用户并分配数据库权限

    下面展示了如何在Linux中创建和设置一个MySQL用户. 首先以root身份登录到MySQL服务器中. $ mysql -u root -p 当验证提示出现的时候,输入MySQL的root帐号的密码 ...

最新文章

  1. 单元测试(VS CppUnitTest)
  2. Android开发学习之路--Notification之初体验
  3. 如何处理CloudFoundry应用部署时遇到的254错误
  4. onclick 获取img 里面的id_红魔5S游戏手机如何解锁bl获取第三方面具root权限
  5. [C++11]forward完美转发
  6. 帮助文件html打不开,chm帮助文件打不开全是代码?这几种解决方法了解一下
  7. 服务端api用php写还是用node,如何使用node搭建服务器,写接口,调接口,跨域
  8. 【论文笔记】DeepWalk:大型社会表示的在线学习
  9. rancher添加私有仓库_使用Rancher和私有仓库快速搭建Kubernetes集群
  10. Windows 7样式地址栏(Address Bar)控件实现
  11. 终于明白我做小生意为啥赔钱了,主要原因还是进货渠道不行
  12. AjaxAtlas技术团队[公告]:请大家清理自己发布在团队页面上的post!
  13. (转)一个百倍股的坠落:那个曾经满大街的ESPRIT是如何衰败的
  14. 冒泡排序算法详解之C语言版
  15. 联想V480(扬天) EI Capitan 完美驱动教程
  16. HBase2.4.10 踩坑笔记
  17. 开环增益对负反馈放大电路的影响
  18. 雷达一维距离像怎么用matlab仿真出来,雷达目标识别之一维距离像的学习
  19. CRM项目半途而废 “烂摊子”该如何收拾?
  20. oracle-29913,Oracle RAC expdp 错误一例 ORA-29913: error in executing ODCIEXTTABLEPOPULATE callout...

热门文章

  1. Packet for query is too large (1166 1024). You can change this value
  2. Android ContentProvider、ContentResolver和ContentObserver的使用
  3. Express框架(http服务器 + 路由)
  4. G面经prepare: Set Intersection Set Difference
  5. 【读书笔记-数据挖掘概念与技术】分类:高级方法
  6. 细学PHP 08 数组-2
  7. C# 线程知识--使用Task执行异步操作(转)
  8. iis出现 Server Application Error 错误解决方法(xp iis5.1 配置asp项目出现500错)
  9. python解析并读取PDF文件:函数总结
  10. cgo的几种使用方式