通过create user 命令来创建用户, 有两种方式:(只介绍通过 create user 命令, 直接往user表中插入数据的方式,这里就不说了)

创建用户的同时, 指定用户可登录的主机和密码

create user 'test_user'@'%' identified by "123";
create user 'test_user'@'localhost' identified by "123";
create user 'test_user'@'127.0.0.1' identified by "123"; grant all privileges on test_db.* to 'test_user'@'%';
grant select,update,delete,insert,drop on test_db.* to 'test_user'@'%';
grant all privileges on test_db.* to 'test_user'@'%' identified by '1112';
grant all privileges on test_db.* to 'test_user'@'%' with grant option;

首先解释一下创建用户的命令参数:

  • 'test_user'是用户名
  • @ 后面是指定的登录主机,'localhost' '127.0.0.1'表示只能在 本地登录;'%'表示只能在远程主机登录
  • identified by 后面是密码
  • 友情提示: 上述命令中,用户名, 登录主机, 密码, 建议都使用 引号包起来, 防止不必要的麻烦

分配权限的命令参数:

  • grant 是分配权限的命令
  • all privileges 指所有的权限, 也可以像第二条那样, 指定某些权限给用户
  • test_db.* 表示 test_db库的所有表, 可以指定某个表 test_db.table1, 或者所有数据库的所有表, *.*
  • identified by 指定密码, 如果不指定, 默认用创建用户的时候的密码, 或者可以不同的权限,给不同的密码, 或者不同的登录主机给不同的密码, 都是可以的
  • with grant option 如果带着这个参数, 表示这个被分配权限的用户, 还可以把自己的权限分配给其他人
  • 用grant语句创建权限是不需要再手工刷新授权表的,因为它已经自动刷新了。

上面前三条命令只能同时使用一条, 因为create user 不能创建同名的用户

那么问题就来了, 假设通过第一条命令创建了用户, 那么这个用户就只能在远程主机上登录, 而不能在本地登录, 如果在本地登录, 会报这个错误:ERROR 1045 (28000): Access denied for user 'card_test1'@'localhost' (using password: YES)

出现这个错误有很多种情况, 据我的了解, 可能是:

  1. 用户没有在本地登录的权限, 也就是'card_test1'@'localhost' 这个用户不存在, 因为只存在'card_test1'@'%' 这个用户
  2. 密码不对

为了解决这个问题, 可以通过第二种方式, 也就是create user 的时候, 不分配登录主机这些参数

只创建用户, 不分配主机

1. create user test_user;
2. create user test_user identified by "123"; 3. grant all privileges on test_db.* to 'test_user'@'%' identified by "1234";
4. grant all privileges on test_db.* to 'test_user'@'localhost'identified by "1235";

上面的命令, 1,2 执行一条, 单纯的创建用户, 或者同时分配密码;

然后, 3,4 两条都可以执行, 这样就能让test_user 这个用户, 既能在本地登录, 又能在远程登录, 如果 grant的时候, 设置不同的密码, 还能使在不同主机登录的同一个用户, 使用不同的密码

取消用户权限

使用 revoke 语句

revoke all on test_db.* from 'test_user'@'localhost';

这个命令就取消了 test_user 这个用户, 在本地登录时的全部权限

删除用户

drop user 'test_user'@'%';
drop user 'test_user'@'localhost';

修改指定用户的密码

update mysql.user set password=password('new_passwd') where User='test_user' and Host='%';

创建用户给用户创建权限或者修改权限, 都可以通过直接操作 mysql.user表; 注意直接操作表的话, 需要用flush privileges;命令 刷新权限

mysql 创建用户, 分配权限, 删除用户的更多相关文章

  1. mysql 创建,授权,删除 用户

    1.创建用户 创建一个用户名是 lefunyun 密码是 X5A4FU8I0lKM21YPYUzP 账号 CREATE USER lefuyun@localhost IDENTIFIED BY 'X5 ...

  2. Mysql创建数据库以及用户分配权限

    一.创建mysql数据库 1.创建数据库语法 --创建名称为“testdb”数据库,并设定编码集为utf8 CREATE DATABASE IF NOT EXISTS testdb DEFAULT C ...

  3. MySQL添加新用户、为用户创建数据库、为新用户分配权限

    登录MySQL [root@VM_0_2_33_centos /]#mysql -u root -p 添加新用户 允许本地 IP 访问 localhost, 127.0.0.1 mysql>'; ...

  4. MySQL添加用户、为用户分配权限

    登录MySQL登录本地用户 mysql -u root -p登录外网用户(需要注意服务器可能只允许本地登录,需要修改响应的配置文件) mysql -u zhrt -h 10.64.6.4 -p添加用户 ...

  5. Linux下给mysql创建用户分配权限

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  6. MySQL中创建用户分配权限

    测试环境:CentOS6.8 和 MySQL5.5.4 一 需求 在项目开发的过程中可能需要开放自己的数据库给别人,但是出于安全的考虑,不能同时开放自己服务器里的其他数据库.那么可以新建一个用户,赋予 ...

  7. 如何给mysql用户分配权限

    1,Mysql下创建新的用户 语法: 1.create user 用户名 identified by '密码'; 例:create user xiaogang identified by '12345 ...

  8. 如何给mysql用户分配权限+增、删、改、查mysql用户

    在mysql中用户权限是一个很重析 参数,因为台mysql服务器中会有大量的用户,每个用户的权限需要不一样的,下面我来介绍如何给mysql用户分配权限吧,有需要了解的朋友可参考. 1,Mysql下创建 ...

  9. SQLSever--基础学习--创建登录用户&创建数据库用户&分配权限

    如题,本文简记一下SQL Sever里面登录用户(login)的创建,数据库用户(DBUser)的创建,以及给数据库用户分配权限(Grant). 数据库有三层保护机制: 第一层:登录用户以及登录密码的 ...

随机推荐

  1. workbook数据相关操作

    访问单个单元格 c = ws['A4'] #返回单元格A4,如果单元格不存在,则会自动创建 ws['A4'] = 4 #为单元格A4赋值为4 d = ws.cell(row=4, column=2, ...

  2. C++入门到理解阶段二基础篇(5)——C++流程结构

    1.顺序结构 程序从上到下执行 2.选择结构(判断结构) 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). ​ C++ 编程 ...

  3. js的promise

    转载自: https://segmentfault.com/a/1190000007032448#articleHeader16 一 前言 本文主要对ES6的Promise进行一些入门级的介绍.要想学 ...

  4. wp.editor.initialize 配置案例

    wp.editor.initialize ( 'EditorTextArea' , { tinymce: { wpautop: to true , theme: 'modern' , skin: 'l ...

  5. python基础(35):协程

    1. 前言 之前我们学习了线程.进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位.按道理来说我们已经算是把cpu的利用率提高很多了.但是我们知道无论是创建多进程还是创 ...

  6. hibernateHQL

    HQL 即Hibernate Query Language的缩写 hql和sql区别/异同 HQL                                                    ...

  7. jquery中的ajax请求到php(学生笔记)

    首先ajax的基本语法基础.(必须得引入一个jquery文件,下面的例子展示用了网上的jquery文件,要联网.) 2.请求成功(复制代码运行观察效果) <!DOCTYPE html> & ...

  8. Java入门——初识Java

    Java入门——初识Java 摘要:本文主要对Java这门编程语言进行简单的介绍. Java简介 说明 Java语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...

  9. GO基础之函数

    一.Go语言函数的格式 函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func.函数名.参数列表.返回值.函数体和返回语句,每一个程序都包含很多的函数,函数是基本的代码块. 函 ...

  10. FCC---Animate Elements at Variable Rates----一闪一闪亮晶晶,不同的闪动节奏

    There are a variety of ways to alter the animation rates of similarly animated elements. So far, thi ...