MySQL用户与权限
用户连接到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用户与权限的更多相关文章
- Mysql 用户,权限管理的几点理解。
前两天项目数据库要移植到mysql,为此临时抓了几天很久没用的mysql. 公司的数据库比较简单,从oracle迁移到mysql很简单,但是,中间的权限管理让我感觉既简单又复杂..简单是因为网上关于m ...
- mysql 用户及权限管理 小结
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用.如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接. 在 MySQL 命令行模式下输入如下命 ...
- MySQL Study之--MySQL用户及权限管理
MySQL Study之--MySQL用户及权限管理 MySQLserver通过MySQL权限表来控制用户对数据库的訪问.MySQL权限表存放在mysql数据库里.由mysql_install ...
- 如何给mysql用户分配权限+增、删、改、查mysql用户
在mysql中用户权限是一个很重析 参数,因为台mysql服务器中会有大量的用户,每个用户的权限需要不一样的,下面我来介绍如何给mysql用户分配权限吧,有需要了解的朋友可参考. 1,Mysql下创建 ...
- 入门MySQL——用户与权限
前言: 前面几篇文章为大家介绍了各种SQL语法的使用,本篇文章将主要介绍MySQL用户及权限相关知识,如果你不是DBA的话可能平时用的不多,但是了解下也是好处多多. 1.创建用户 官方推荐创建语法为 ...
- MySQL用户与权限管理
执行mysql select 查询报错: SELECT command denied to user 'root'@'localhost' for table "xxx" 问题原因 ...
- MySql 用户 及权限操作
bin/msyql -h host -u user -p bin/mysql -u mysql -p 本地登录 如无密码按回车直接进入mySql bin/mysqladmin -u roo ...
- mysql用户管理,权限管理
mysql权限 相关操作: 授予的权限分为四组: 列权限:和表中的一个具体列相关,例如:使用update 语句更新test表中name 列的值 表权限:和一个具体的表的所有数据相关,例如:使用 sel ...
- mysql用户和权限管理
用户和权限管理 Information about account privileges is stored in the user, db, host, tables_priv, columns_p ...
- mysql 用户管理 权限控制
添加用户 insert into mysql.user(Host,User,Password) values("%","shenen",password(&qu ...
随机推荐
- FineReport简单上手
一.简介 FineReport是一个企业级报表制作.分析和展示工具 官网可以下载个人版进行体验学习:(windows版本设计器) https://www.finereport.com/product/ ...
- [数据结构 - 第3章] 线性表之单链表(C++实现)
一.类定义 单链表类的定义如下: #ifndef SIGNALLIST_H #define SIGNALLIST_H typedef int ElemType; /* "ElemType类型 ...
- JS如何实现继承?
JS的继承是基于JS类的基础上的一种代码复用机制.换言之,有了代码,我们就不需要复制之前写好的方法,只要通过简捷的方式 复用之前自己写的或同事写的代码.比如一个弹出层,我们需要在上面做一些修改.同事写 ...
- webx入门
- Windows 7 下使用gitblit + git 搭建小组内文件版本控制环境
一.GitBlit下载及配置 使用前先看下GitBlit的百科介绍,很简洁:需要java运行环境:是一个纯 Java 库用来管理.查看和处理Git 资料库.即一个基于Java的分布式版本控制系统. 1 ...
- JDK8从永生代到元数据区
永生代 永生代默认的最大内存大小是在32位JVM上为64MB, 在64位JVM上为82MB.可以通过-XX:PermSize=[size]和-XX:MaxPermSize=[size]来调整. 永生代 ...
- [SourceTree] - 提交代码失败 "git -c diff.mnemonicprefix=false -c core.quotepath=false" 之解决
背景 使用 SourceTree 提交代码失败,尝试了重装 SourceTree 和 Git 问题依旧. 错误信息 git -c diff.mnemonicprefix=false -c core.q ...
- Listener学习
监听器Listener用于监听web应用中某些对象.信息的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法.常用于统计 ...
- python优先级问题
- maven安装配置 每次都百度,麻烦
JDK已经安装 1. 下载:https://maven.apache.org/download.cgi 2. 解压 D:\Program Files\maven 配置环境变量 新建环境变量MAVEN ...