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 ...
随机推荐
- OpenShift 4.2 etcd operatorhub离线环境部署
本文记录在OperatorHub中存在界面但缺少镜像的环境下如何安装部署.感谢王征提供的大力支持和指导. 现在一个在线环境找到etcd所需要的镜像 quay.io/coreos/etcd-operat ...
- python os.popen('xxx.py') 遇到的坑 (No Child Processes)
1.调用系统库 platform.system() 报错: 2.os.popen() 打开的文件流未关闭也会出现这种错误. f = os.popen() f.read() f.close() 问题复现 ...
- API设计之道
接口安全要求: 1.防伪装攻击(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口) 2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改) 3.防重放攻击(案 ...
- qt 获取汉字拼音首字母
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QDebug>#include ...
- go中值传递、引用传递、指针传递的区别
go语言中的值类型: int.float.bool.array.sturct等 值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数 声明一个值类 ...
- 小甲鱼汇编语言学习笔记——day02
1.8086CPU不支持将数据直接送入段寄存器,需要按照下面方式:数据——>通用寄存器——>段寄存器. 2.mov指令的几种形式: mov 寄存器,数据 mov 寄存器,寄存器 mov 寄 ...
- 用js实现call方法
Function.prototype.call2 = function (context, ...args) { var context = context || window; //改变th ...
- vue实现视频播放
用的vue组件是vue-video-player,可以去百度下怎么引入到项目中: 因为这个组件是基于H5video实现的,视频格式有所限制,而且MP4不是H264的也不行.转码可以看下我上篇博客,地址 ...
- 创建企业级地理数据库报错:ORA-01455
环境: Oracle Server : 11.2.0.3 (x64) Oracle Client : 11.1.0.6 (x32) Arcgis Desktop : 10.3 在该环境下执行 &qu ...
- 在ensp上配置基于接口地址池的DHCP
原理 实验模拟 实验拓扑 相关参数 开启dhcp服务 开启接口的dhcp服务功能,指定从接口地址池分配(接口1一样) 配置接口DHCP服务租期(租期默认是一天) 设置保留地址 设置dns 我们在pc1 ...