mysql 权限管理
1.用户管理
1. 登录和退出MySQL
本地登录客户端命令:
# mysql -uroot -pqf123远程登陆:
客户端语法:mysql -u 用户名 -p 密码 -h ip地址 -P端口号:如果没有改端口号就不用-P指定端口
# mysql -h192.168.246.253 -P 3306 -uroot -pqf123
如果报错进入server端服务器登陆mysql执行:
mysql> use mysql
mysql> update user set host = '%' where user = 'root';
mysql> flush privileges;
# mysql -h192.168.246.253 -P 3306 -uroot -pqf123 -e 'show databases;'
-h 指定主机名 【默认为localhost】
-大P MySQL服务器端口 【默认3306】
-u 指定用户名 【默认root】
-p 指定登录密码 【默认为空密码】
-e 接SQL语句,可以写多条拿;隔开
# mysql -h192.168.246.253 -P 3306 -uroot -pqf123 -D mysql -e 'select * from user;'
此处 -D mysql为指定登录的数据库
修改端口rpm安装:vim /etc/my.cnf
在到【mysql】标签下面添加port=指定端口。重启服务
2.创建用户
方法一:CREATE USER语句创建
mysql> create user tom@'localhost' identified by 'qf@123'; #创建用户为tom,并设置密码。
mysql> FLUSH PRIVILEGES; #更新授权表
注:
identified by :设置密码
在用户tom@' ' 这里 选择:
%:允许所有主机远程登陆包括localhost。也可以指定某个ip,允许某个ip登陆。也可以是一个网段。
localhost:只允许本地用户登录
==客户端主机 % 所有主机远程登录
192.168.246.% 192.168.246.0网段的所有主机
192.168.246.252 指定主机
localhost 只允许本地用户登录
GRANT ---授权。
mysql> GRANT ALL ON *.* TO 'user3'@’localhost’;
#权限 库名.表名 账户名
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
修改远程登陆:
将原来的localhost修改为%或者ip地址
mysql> use mysql
mysql> update user set host = '192.168.246.%' where user = 'user3';
mysql> FLUSH PRIVILEGES;
3、刷新权限
修改表之后需要刷新权限
方式1:
mysql > flush privileges;
方式二:使用命令创建用户并授权:grant
也可创建新账户(不过后面的版本会移除这个功能,建议使用create user)
语法格式:
grant 权限列表 on 库名.表名 to '用户名'@'客户端主机' IDENTIFIED BY 'Qf@123';
==权限列表 all 所有权限(不包括授权权限)
select,update
select, insert#注意:root用授权时候grant授权权限不要给予
==数据库.表名 *.* 所有库下的所有表
web.* web库下的所有表
web.stu_info web库下的stu_info表#单独授权
给刚才创建的用户tom授权:
mysql> grant select,insert on *.* to 'tom'@'localhost';
mysql> FLUSH PRIVILEGES;
4.权限简介
权限简介
权限简介
| 权限 | 权限级别 | 权限说明
| :--------------------- | :--------------------- | :------------------------------------
| CREATE | 数据库、表或索引 | 创建数据库、表或索引权限 | DROP | 数据库或表 | 删除数据库或表权限 | GRANT OPTION | 数据库、表或保存的程序 | 赋予权限选项 #小心给予 | ALTER | 表 | 更改表,比如添加字段、索引等
| DELETE | 表 | 删除数据权限 | INDEX | 表 | 索引权限
| INSERT | 表 | 插入权限
| SELECT | 表 | 查询权限
| UPDATE | 表 | 更新权限
| LOCK TABLES | 服务器管理 | 锁表权限
| CREATE USER | 服务器管理 | 创建用户权限 | REPLICATION SLAVE | 服务器管理 | 复制权限 | SHOW DATABASES | 服务器管理 | 查看数据库权限
5、查看权限
查看权限
1.看自己的权限:
mysql> SHOW GRANTS\G
*************************** 1. row ***************************
Grants for root@%: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
2.看别人的权限:
mysql> SHOW GRANTS FOR tom@'localhost'\G
*************************** 1. row ***************************
Grants for tom@localhost: GRANT SELECT, INSERT ON *.* TO 'tom'@'localhost'
6、移除权限
移除用户权限
语法:REVOKE 权限 ON 数据库.数据表 FROM '用户'@'IP地址';
- 被回收的权限必须存在,否则会出错
- 整个数据库,使用 ON datebase.*;
- 特定的表:使用 ON datebase.table;mysql> revoke select,delete on *.* from jack@'%'; #回收指定权限
mysql> revoke all privileges on *.* from jack@'%'; #回收所有权限
mysql> flush privileges;
7、修改密码
===root修改自己密码
方法一:
语法: mysqladmin -uroot -p'123' password 'new_password' #123为旧密码
案例:
# mysqladmin -uroot -p'qf123' password 'qf@123';
方法二:
mysql>SET PASSWORD='new_password';==root修改其他用户密码
mysql> use mysql
mysql> SET PASSWORD FOR user3@'localhost'='new_password'
用户 = 新密码
8、删除用户
方法一:DROP USER语句删除
DROP USER 'user3'@'localhost';方法二:DELETE语句删除
DELETE FROM mysql.user WHERE user='tom' AND host='localhost';更新授权表: FLUSH PRIVILEGES;
9、查看密码复杂度
MySQL 默认启用了密码复杂度设置,插件名字叫做 validate_password,初始化之后默认是安装的如果没有安装执行下面的命令会返回空或者没有值,这时需要安装该插件
安装插件
mysql> INSTALL PLUGIN validate_password SONAME 'validate_password.so'
1.查看密码复杂度
mysql> show variables like 'validate%';
参数解释:
validate_password_length :#密码最少长度,默认值是8最少是0
validate_password_dictionary_file:#用于配置密码的字典文件,字典文件中存在的密码不得使用。
validate_password_policy: #代表的密码策略,默认是MEDIUM
validate_password_number_count :#最少数字字符数,默认1最小是0
validate_password_mixed_case_count :#最少大写和小写字符数(同时有大写和小写),默认为1最少是0
validate_password_special_char_count :#最少特殊字符数,默认1最小是02.查看密码策略
mysql> select @@validate_password_policy;
1 row in set (0.00 sec)策略:
- 0 or LOW 设置密码长度(由参数validate_password_length指定)
- 1 or MEDIUM 满足LOW策略,同时还需满足至少有1个数字,小写字母,大写字母和特殊字符
- 2 or STRONG 满足MEDIUM策略,同时密码不能存在字典文件(dictionary file)中3.查看密码的长度
mysql> select @@validate_password_length;
1 row in set (0.00 sec)4.设置密码复杂度
mysql> set global validate_password_length=1; #设置密码长度为1个(默认长度是4)
mysql> set global validate_password_number_count=2; #设置密码数字最少为1个5.设置密码复杂性策略
mysql> set global validate_password_policy=LOW; 也可以是数字表示。#设置密码策略mysql> flush privileges; #刷新授权
10、权限控制机制
四张表:user db tables_priv columns_priv
1.用户认证
查看mysql.user表
2.权限认证
以select权限为例:
1.先看 user表里的select_priv权限
Y:不会接着查看其他的表 拥有查看所有库所有表的权限
N:接着看db表
2.db表: #某个用户对一个数据库的权限。
Y:不会接着查看其他的表 拥有查看所有库所有表的权限
N:接着看tables_priv表
3.tables_priv表:#针对表的权限
tables_priv:如果这个字段的值里包括select 拥有查看这张表所有字段的权限,不会再接着往下看了
tables_priv:如果这个字段的值里不包括select,接着查看下张表还需要有column_priv字段权限
4.columns_priv:针对数据列的权限表
columns_priv:有select,则只对某一列有select权限
没有则对所有库所有表没有任何权限
注:其他权限设置一样。
# 授权级别排列- mysql.user #全局授权
- mysql.db #数据库级别授权
- 其他 #表级,列级授权
mysql 权限管理相关推荐
- mysql 权限管理 目录
mysql 权限管理介绍 mysql 权限管理 记录 mysql 权限管理 grant 命令 mysql 权限管理 revoke 回收权限 命令 mysql 权限管理 针对库 授权 db.* mysq ...
- mysql权限管理实验_实验五 MYSQL权限与安全
实验五MYSQL权限与安全 实验平台:安装MYSQL数据库的PC 实验目的:1.理解MYSQL权限管理的工作原理. 2.掌握MYSQL中账号管理. 实验具体要求(在导入的教学管理STM数据库中完成): ...
- thinkphp mysql权限管理_TP thinkphp 权限管理 权限认证 功能
目前,在tp框架中做权限管理 分rbac(老)与auth(推荐)认证方式: 老的tp版本中封装的是rbac认证: 新一点的都开始使用auth方式管理了.推荐使用此方式: 实现步骤一:引入类库Auth. ...
- 关闭mysql权限管理_MySQL系列:用户及权限管理
一.权限介绍 1.权限类别:对象界别划分 库级别.表级别.字段级别.管理类权限.程序类权限 (1)库和表级别的权限:对于具体的库或者表进行授权操作 ALTER.CREATE.CREATE VIEW.D ...
- mysql 权限管理无效_mysql 权限控制笔记
* 阶段1:服务器检查是否允许你连接. * 阶段2:假定你能连接,服务器检查你发出的每个请求.看你是否有足够的权限实施它.例如,如果你从数据库表中选择(select)行或从数据库删除表,服务器确定你 ...
- MySQL权限管理-安全与效率的折中
之所以想写这篇文章,是因为在工作中,经常被MySQL的用户授权问题折腾一下.日积月累....忍不住吐槽一下. MySQL的安全包括很多方面,主要分为内部安全,外部安全及数据传输安全. 内部安全指 ...
- 不用于mysql权限管理的24260_[MySQL Reference Manual] 24 MySQL sys框架
24 MySQL sys框架 24.1 sys框架的前提条件 在开始使用sys框架之前,有一些前提条件,sys需要mysql 5.6或者更高版本.因为sys是performance_schema的替代 ...
- mysql 权限管理 记录
授权操作只能用root账号,其他账号都不行 创建一个mike账号 mysql> create user 'mike'@'localhost' identified by '123'; Query ...
- mysql 权限管理 针对表的字段 级别 授权 columns_priv表
针对Mike账号 db1库下面的t1表的 id,name字段授予select权限,age字段授予update权限 授权格式 select(要授权的字段,要授权的字段) 用户括号 括起来 .updat ...
最新文章
- VisualStudio 合并代码文件
- 毕业论文答辩老师最想听到什么?最关注的问题是什么?
- FTP 服务搭建及常用的命令脚本及传输协议基础普及
- 电力系统单机无穷大_电力系统分析(九):电力系统的稳定性分析
- Windows批处理(cmd/bat)常用命令
- java技术突破要点
- ssh连接出现:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- Linux sync命令的作用分析
- 整数规划matlab实例,整数规划matlab
- 阿里云云原生一体化数仓正式发布 助力企业数据驱动业务创新
- webp环境搭建和使用过程
- loss曲线 pytorch_PyTorch应用:用ResNet进行交通标志分类
- ssm三个框架分别用来干什么_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)
- 海康摄像头通过Ehome协议接入EasyCVR视频结构化可视平台无法播放问题如何排查?
- python中文分词+词频统计
- 数据挖掘实战—航空公司客户价值分析
- iOS调用手机振动和铃声
- python传输视频文件_Python视频传输
- MUR2060AC-ASEMI快恢复二极管MUR2060AC
- TCP/IP四层模型生米煮成熟饭,生态的重要性
热门文章
- ChinaSoft 论坛巡礼 | 编译器与编程语言
- 鼠标右键快捷方式小技巧
- 对于手机号和邮箱的格式验证
- UWB高精度定位最优方式:全无线方式部署UWB定位系统解析
- 身份证照片获取个人信息与银行卡4要素验证
- 分享一个非常好的壁纸网站http://www.itoobz.com
- 使用scrapy再次爬取猫眼前100榜单电影!
- 基于TI AM5728(浮点双DSP C66x +双ARM Cortex-A15)的开发板
- ctfshow XSS web316-web333 wp
- SSH远程访问与TCP Wrappers 访问控制(基础概述及配置操作)