用户连接到mysql,并做各种查询,在用户和服务器中间分为两个阶段:

1:用户是否有权连接上来

2:用户是否有权执行此操作(如select,update等等)

先看第一个阶段:服务器如何判断用户是否有权连接上来

依据三个参数:

你从哪来? host

你是谁?    user

你的密码是多少? password

用户的这3个信息,存储在mysql库中的user表下

---------------------------------------------

修改host域,使IP可以连接

update user set host='ip地址' where user='root';
flush privileges;#冲刷权限

我们也可以删除用户使此用户无法连接:

delete from user where user='';
flush privileges;

-------------------------

如何修改用户的密码:

在mysql8.0版本以上修改密码的话使用如下语句完成:

use mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

新增一个用户并授权:

MySQL8.0以下的使用下面的语句

grant [权限1,权限2,权限3......]on 哪个库.哪张表 to 用户@'host' identfied by 'password';

MySQL8.0以上需要将创建用户和授权分开进行:

#创建新用户:
create user 'lisi'@'192.168.3.110' identified by'';
#给新用户授权:
grant all privileges on *.* to 'lisi'@'192.168.3.110';

常用权限有all,create,drop,insert,delete,update,select

我们来查看一下lisi用户的全局权限:

可以看到他的权限是非常大的;那么现在我们要收回权限:

#收回权限
revoke all on *.* form 'lisi'@'192.168.3.110';

那么我们授权lisi用户的test库权限:

grant all on test.* to 'lisi'@'192.168.3.110';

然后我们再看lisi用户的全局权限:

select * from user where user='lisi'\G

我们看到它的全局权限变成了NO,但是他真的就没有任何权限吗?

其实不是的,他在db表的记录里还有权限:

select * from db where user='lisi'\G

而且我们show databases;可以发现他还有操作test库的权力:

-------------------------------------------

同样的,我们使用grant all on test.goods to 'lisi'@'192.168.3.110';这条语句还能赋予lisi操作goods表的权力。

MySQL用户与权限的更多相关文章

  1. Mysql 用户,权限管理的几点理解。

    前两天项目数据库要移植到mysql,为此临时抓了几天很久没用的mysql. 公司的数据库比较简单,从oracle迁移到mysql很简单,但是,中间的权限管理让我感觉既简单又复杂..简单是因为网上关于m ...

  2. mysql 用户及权限管理 小结

    MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...

  3. MySQL Study之--MySQL用户及权限管理

    MySQL Study之--MySQL用户及权限管理     MySQLserver通过MySQL权限表来控制用户对数据库的訪问.MySQL权限表存放在mysql数据库里.由mysql_install ...

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

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

  5. 入门MySQL——用户与权限

    前言:  前面几篇文章为大家介绍了各种SQL语法的使用,本篇文章将主要介绍MySQL用户及权限相关知识,如果你不是DBA的话可能平时用的不多,但是了解下也是好处多多. 1.创建用户 官方推荐创建语法为 ...

  6. MySQL用户与权限管理

    执行mysql select 查询报错: SELECT command denied to user 'root'@'localhost' for table "xxx" 问题原因 ...

  7. MySql 用户 及权限操作

    bin/msyql -h host -u user -p    bin/mysql -u mysql -p  本地登录 如无密码按回车直接进入mySql   bin/mysqladmin -u roo ...

  8. mysql用户管理,权限管理

    mysql权限 相关操作: 授予的权限分为四组: 列权限:和表中的一个具体列相关,例如:使用update 语句更新test表中name 列的值 表权限:和一个具体的表的所有数据相关,例如:使用 sel ...

  9. mysql用户和权限管理

    用户和权限管理 Information about account privileges is stored in the user, db, host, tables_priv, columns_p ...

  10. mysql 用户管理 权限控制

    添加用户 insert into mysql.user(Host,User,Password) values("%","shenen",password(&qu ...

随机推荐

  1. 一份ChatBot开源工程介绍(H5 + WX + KOA)

    vue-mpvue-ChatRobot https://github.com/fanqingsong/vue-mpvue-ChatRobot 前端 : Vue + Mpvue(支持移动端与小程序) ; ...

  2. elasticsearch中mapping的_source和store的笔记(转)

    原文地址: https://www.cnblogs.com/zklidd/p/6149120.html 0.故事引入 无意中看到了ES的mapping中有store字段,作为一个ES菜鸡,有必要对这个 ...

  3. 【翻译】Flink Table Api & SQL — Hive —— Hive 函数

    本文翻译自官网:Hive Functions  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/h ...

  4. C#反射机制(转自Binfire博客)

    一:反射的定义 审查元数据并收集关于它的类型信息的能力.元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等. Sys ...

  5. Windows多网卡路由设置

    需要经常切换网络以满足不同的工作需求: 一会上生产线, 一会上测试机, 一会还要上外网查资料... 经常切来切去比较麻烦,可以尝试Windows的路由表 route ADD 64.0.0.0 MASK ...

  6. 【springcloud】【idea】启动服务报错Command line is too long. Shorten command line for XXXApplication or also for Spring Boot default configuration.

    在workspace.xml 在标签<component name="PropertiesComponent">里 添加<property name=" ...

  7. pandas 模块

    什么是pandas pandas是一个python的包,主要用来处理表格格式的文件,可以快速的对表格进行查询,过滤,合并等操作. pandas的简单使用 pandas读入table格式文件 #读入一个 ...

  8. Linux下使用matlab在后台默默的运行.m文件(无界面形式)

    Linux下使用matlab在后台默默的运行.m文件(无界面形式)本主在Ubuntu18.04LTS上已经安装了matlab直接运行Matlab$ matlab会启动 matlab,出现启动界面但想要 ...

  9. 前端调试代码 chrom 和 火狐禁用缓存 Disabled cache

    前端调试的时候经常遇到缓存问题, chrome : f12  ---> 找到 Disabled caceh 勾上 火狐: f12 找到 禁用缓存

  10. 查看Linux服务器配置

    1.查看CPU lscpu 2.查看内存 free -g 或 free -m 3.查看硬盘 df -h