当前位置: 首页 > news >正文

【数据库】 mysql用户授权详解

目录

MySQL用户授权

一,密码策略

1,查看临时密码

2,查看数据库当前密码策略:

二, 用户授权和撤销授权

1、创建用户

2,删除用户

3,授权和回收权限


MySQL用户授权

一,密码策略

mysql刚安装时,临时密码会存储在 /var/log/mysqld.log

1,查看临时密码

方法一:直接给出密码

[root@localhost ~]# awk '/temporary password/ {print $NF}' /var/log/mysqld.log*2D):irrJ_!_

 

方法二:查到的语句的最后为密码

[root@localhost ~]# grep 'password' /var/log/mysqld.log2023-02-07T13:07:17.842453Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: *2D):irrJ_!_

 

 

 

2,查看数据库当前密码策略:

mysql8.0.30 [(none)]>show VARIABLES like"%password%";

二, 用户授权和撤销授权

MySql8有新的安全要求,不能像之前的版本那样一次性创建用户并授权。需要先创建用户,再进行授权操作。

mysql8.0.30 [(none)]>grant all privileges on *.* to 'xiaoming'@'%';

ERROR 1410 (42000): You are not allowed to create a user with GRANT

 

1、创建用户

创建新用户,语法:create user 'username'@'host' identified by 'password';

说明:username为自定义的用户名,host为客户端的域名或者IP,如果host为'%'时表示为任意IP,password为密码。

(1)创建一个用户名为xiaoming,客户端的ip为任意,密码为Guest123!的新用户

mysql8.0.30 [(none)]>create user xiaoming@'%' identified by 'Guest123!';Query OK, 0 rows affected (0.01 sec)

(2)查看刚创建的的用户信息

mysql8.0.30 [(none)]>select user,host from mysql.user;+------------------+-----------+| user             | host      |+------------------+-----------+| root             | %         || xiaoming         | %         || mysql.infoschema | localhost || mysql.session    | localhost || mysql.sys        | localhost |+------------------+-----------+5 rows in set (0.00 sec)

(3)使用xiaoming用户登录一下数据库:

[root@localhost ~]# mysql -uxiaoming -p'Guest123!';mysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 12Server version: 8.0.32 MySQL Community Server - GPLCopyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

(4)使用xiaoming用户查看所有的数据库:

mysql8.0.30 [(none)]>show databases;+--------------------+| Database           |+--------------------+| information_schema || performance_schema |+--------------------+2 rows in set (0.01 sec)

 

(5)也可以在windows端登录xiaoming用户:

 

 

 

 

 

2,删除用户

(1)删除用户名为xiaoming,客户端的ip为任意,密码为Guest123!的用户

mysql8.0.30 [(none)]>drop user xiaoming@'%';Query OK, 0 rows affected (0.01 sec)

(2)删除后的user表中已经没了xiaoming的信息

mysql8.0.30 [(none)]>select user,host from mysql.user;+------------------+-----------+| user             | host      |+------------------+-----------+| root             | %         || mysql.infoschema | localhost || mysql.session    | localhost || mysql.sys        | localhost |+------------------+-----------+4 rows in set (0.00 sec)

  

注意,如果删除用户时显示如下提示:

mysql8.0[mysql]>drop user xiaoming;

ERROR 1227(42000): Access denied; you need (atleast oneof) the SYSTEM_USER privilege(s) forthis operation

需要执行该语句:

【mysql8.0 [(none)]>grant  system_user  on *.*  to  root@'%';】

3,授权和回收权限

 

授予权限的原则:

(1)只授予能满足需要的最小权限 ,防止用户干坏事。比如用户只是需要查

          询,那就只给 select 权限就可以了,不要给用户赋予update 、 insert 或

           者 delete 权限

(2)创建用户的时候限制用户的登录主机 ,一般是限制成指定 IP 或者内网

           IP 段。

(3)为每个用户设置满足密码复杂度的密码 。

(4)定期清理不需要的用户 ,回收权限或者删除用户。

 

授权语法:grant 权限列表 on 库名.表名 to 用户名@'主机' [with GRANT option];

没有with GRANT option,被授权者无法授权于下一个人用户

mysql用户常用权限列表

说明

all 或者all privileges

授予用户所有权限

create

授予用户创建新数据库和表的权限

drop

授予用户删除数据库和表的权限

delete

授予用户删除表中的行的权限

alter

授予用户修改表结构的权限

insert

授予用户在表中插入行(add)的权限

select

授予用户运行select命令以从表中读取数据的权限

update

授予用户更新表中的数据的权限

查看授予用户的权限的四种方法:

(1) 查看root用户的权限(方法一)

mysql8.0.30 [(none)]>show grants;+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Grants for root@%                                                                                                                                                                                                                                                                                                                                                                                |+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`%` WITH GRANT OPTION |+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)

(2)查看xiaoming用户的权限(方法二)

mysql8.0.30 [(none)]>show grants for xiaoming@'%';+--------------------------------------+| Grants for xiaoming@%                |+--------------------------------------+| GRANT USAGE ON *.* TO `xiaoming`@`%` |+--------------------------------------+1 row in set (0.00 sec)


(3)mysql8.0[mysql]>select* from mysql.user;(方法三)

(4)方法四:

授权操作

不具有授予下一个人权限的权利的授权

(1)此时,xiaoming用户可以访问以下两个数据库,须授予其他数据库的访问权限,才能对其

         它数据库进行操作

mysql8.0.30 [(none)]>show databases;+--------------------+| Database           |+--------------------+| information_schema || performance_schema |+--------------------+2 rows in set (0.01 sec)

 

 

 

(2)给xiaoming用户授予所有权限

*.*中第一个*表示所有数据库,第二个*表示所有数据表

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaoming@'%';Query OK, 0 rows affected (0.01 sec)

(3)此时xiaoming用户拥有和root用户一样的权限,可以访问其它数据库的权限

mysql8.0.30 [(none)]>show databases;+--------------------+| Database           |+--------------------+| chap03             || information_schema || mysql              || performance_schema || sys                |+--------------------+5 rows in set (0.00 sec)


(4)此时的xiaoming用户没有赋予下一个人权限的权利

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaohei@'%';ERROR 1045 (28000): Access denied for user 'xiaoming'@'%' (using password: YES)mysql8.0.30 [(none)]>

具有授予下一个人权限的权利的授权

(1)重新授予xiaoming用户授予其他用户权限的权利

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaoming@'%' with GRANT option;Query OK, 0 rows affected (0.00 sec)

(2)使用xiaoming用户为xiaohei 用户授权

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaohei@'%';Query OK, 0 rows affected (0.01 sec)

(3)此时xiaohei用户拥有访问所有数据库的权利

mysql8.0.30 [(none)]>select user();       (查看当前的用户)+-------------------+| user()            |+-------------------+| xiaohei@localhost |+-------------------+1 row in set (0.00 sec)mysql8.0.30 [(none)]>show databases;     (此用户可以访问以下数据库的权利)+--------------------+| Database           |+--------------------+| chap03             || information_schema || mysql              || performance_schema || sys                |+--------------------+5 rows in set (0.00 sec)

收回权限

收回权限(不包含赋权权限)

REVOKE ALL PRIVILEGES ON *.* FROM username;

收回赋权权限

REVOKE GRANT OPTION ON *.* FROM username;

收回赋权权限

(1)收回xiaoming用户授予其他用户权限的权利

mysql8.0.30 [(none)]>revoke grant option on *.* from xiaoming;Query OK, 0 rows affected (0.00 sec)

(2)此时,xiaoming用户不在拥有授予其他用户的权限

mysql8.0.30 [(none)]>grant all privileges on *.* to xiaohei@'%';ERROR 1045 (28000): Access denied for user 'xiaoming'@'%' (using password: YES)mysql8.0.30 [(none)]>

收回权限(不包含赋权权限)

(1)收回xiaoming用户的所有权限

mysql8.0.30 [(none)]>revoke all privileges on *.* from xiaoming@'%';Query OK, 0 rows affected (0.00 sec)

(2)此时xiaoming用户不在拥有访问其它数据库的权限

mysql8.0.30 [(none)]>show databases;+--------------------+| Database           |+--------------------+| information_schema || performance_schema |+--------------------+2 rows in set (0.00 sec)

相关文章:

【数据库】 mysql用户授权详解

目录 MySQL用户授权 一,密码策略 1,查看临时密码 2,查看数据库当前密码策略: 二, 用户授权和撤销授权 1、创建用户 2,删除用户 3,授权和回收权限 MySQL用户授权 一,密码策略…...

【性能】性能测试理论篇_学习笔记_2023/2/11

性能测试的目的验证系统是否能满足用户提出的性能指标发现性能瓶颈,优化系统整体性能性能测试的分类注:这些测试类型其实是密切相关,甚至无法区别的,例如几乎所有的测试都有并发测试。在实际中不用纠结具体的概念。而是要明确测试…...

C语言(输入printf()函数)

printf()的细节操作很多,对于现阶段的朋友来说,主要还是以理解为主。因为很多的确很难用到。 目录 一.转换说明(占位符) 二.printf()转换说明修饰符 1.数字 2.%数字1.数字2 3.整型转换字符补充 4.标记 -符号 符号 空格符…...

Zabbix 构建监控告警平台(四)

Zabbix ActionZabbix Macros1.Zabbix Action 1.1动作Action简介 当某个触发器状态发生改变(如Problem、OK),可以采取相应的动作,如: 执行远程命令 邮件,短信,微信告警,电话 1.2告警实验简介 1. 创建告警media type&…...

2004-2019年285个地级市实际GDP与名义GDP

2004-2019年285个地级市实际GDP和名义GDP 1、时间:2004-2019年 2、范围:285个地级市 3、说明:GDP平减指数采用地级市所在省份当年平减指数 4、代码: "gen rgdp gdp if year 2003 gen rgdp gdp if year 2003" re…...

Node.js笔记-Express(基于Node.js的web开发框架)

目录 Express概述 Express安装 基本使用 创建服务器 编写请求接口 接收请求参数 获取路径参数(/login/2) 静态资源托管-express.static(内置中间件) 什么是静态资源托管? express.static() 应用举例 托管多个静态资源 挂载路径前缀…...

力扣sql简单篇练习(十五)

力扣sql简单篇练习(十五) 1 直线上的最近距离 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT min(abs(p1.x-p2.x)) shortest FROM point p1 INNER JOIN point p2 ON p1.x <>p2.x1.3 运行截图 2 只出现一次的最大数字 2.1 题目内容 2…...

浅谈动态代理

什么是动态代理&#xff1f;以下为个人理解:动态代理就是在程序运行的期间&#xff0c;动态地针对对象的方法进行增强操作。并且这个动作的执行者已经不是"this"对象了&#xff0c;而是我们创建的代理对象&#xff0c;这个代理对象就是类似中间人的角色&#xff0c;帮…...

Idea超好用的管理工具ToolBox(附带idea工具)

文章目录为什么要用ToolBox总结idea管理安装、更新、卸载寻找ide配置、根路径idea使用准备工作配置为什么要用ToolBox 快速轻松地更新,轻松管理您的 JetBrains 工具 安装自动更新同时更新插件和 IDE回滚和降级通过下载补丁或一组补丁而不是整个包&#xff0c;节省维护 IDE 的…...

Spring 中 ApplicationContext 和 BeanFactory 的区别

文章目录类图包目录不同国际化强大的事件机制&#xff08;Event&#xff09;底层资源的访问延迟加载常用容器类图 包目录不同 spring-beans.jar 中 org.springframework.beans.factory.BeanFactoryspring-context.jar 中 org.springframework.context.ApplicationContext 国际…...

情人节有哪些数码好物值得送礼?情人节实用性强的数码好物推荐

转瞬间&#xff0c;情人节快到了&#xff0c;大家还在为送什么礼物而烦恼&#xff1f;在这个以科技为主的时代&#xff0c;人们正在享受着科技带来的便利&#xff0c;其中&#xff0c;数码产品也成为了日常生活中必不可少的存在。接下来&#xff0c;我来给大家推荐几款比较实用…...

java中flatMap用法

java中map是把集合每个元素重新映射&#xff0c;元素个数不变&#xff0c;但是元素值发生了变化。而flatMap从字面上来说是压平这个映射&#xff0c;实际作用就是将每个元素进行一个一对多的拆分&#xff0c;细分成更小的单元&#xff0c;返回一个新的Stream流&#xff0c;新的…...

【MySQL Shell】8.9.2 InnoDB ClusterSet 集群中的不一致事务集(GTID集)

AdminAPI 的 clusterSet.status() 命令警告您&#xff0c;如果 InnoDB 集群的 GTID 集与 InnoDB ClusterSet 中主集群上的 GTID 集不一致。与 InnoDB ClusterSet 中的其他集群相比&#xff0c;处于此状态的集群具有额外的事务&#xff0c;并且具有全局状态 OK_NOT_CONSISTENT 。…...

logstash毫秒时间戳转日期以及使用业务日志时间戳替换原始@timestamp

文章目录问题解决方式参考问题 在使用Kibana观察日志排查问题时发现存在很多组的timestamp 数据一样&#xff0c;如下所示 详细观察内部数据发现其中日志数据有一个timestamp字段保存的是业务日志的毫秒级时间戳&#xff0c;经过和timestamp数据对比发现二者的时间不匹配。经…...

【C语言】qsort——回调函数

目录 1.回调函数 2.qsort函数 //整形数组排序 //结构体排序 3.模拟实现qsort //整型数组排序 //结构体排序 1.回调函数 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另一个函数&#xff0c;当这个指针被用来…...

8年软件测试工程师经验感悟

不知不觉在软件测试行业&#xff0c;野蛮生长了8年之久。这一路上拥有了非常多的感受。有迷茫&#xff0c;有踩过坑&#xff0c;有付出有收获&#xff0c; 有坚持&#xff01; 我一直都在软件测试行业奋战&#xff0c; 毕业时一起入职的好友已经公司内部转岗&#xff0c;去选择…...

腾讯云安全组配置参考版

官方文档参考: 云服务器 安全组应用案例-操作指南-文档中心-腾讯云 新建安全组时&#xff0c;您可以选择腾讯云为您提供的两种安全组模板&#xff1a; 放通全部端口模板&#xff1a;将会放通所有出入站流量。放通常用端口模板&#xff1a;将会放通 TCP 22端口&#xff08;Lin…...

代码覆盖率工具OpenCppCoverage在Windows上的使用

OpenCppCoverage是用在Windows C上的开源的代码覆盖率工具&#xff0c;源码地址为https://github.com/OpenCppCoverage/OpenCppCoverage &#xff0c;最新发布版本为0.9.9.0&#xff0c;License为GPL-3.0。 从https://github.com/OpenCppCoverage/OpenCppCoverage/releases 下载…...

代码随想录算法训练营第24天25天|● 77. 组合● 216.组合总和III ● 17.电话号码的字母组合

77组合 看完题后的思路 void f&#xff08;数组&#xff0c;startIndex&#xff09;递归终止 if&#xff08;startIndex数组长度||path.sizek&#xff09;{ if(path.sizek){ 加入} }递归 for&#xff08;&#xff1b;startIndex<num.size&#xff1b;startIndex&#xff0…...

Python_pytorch

python_pytorch 小土堆pytotch学习视频链接 from的是一个个的包&#xff08;package) import 的是一个个的py文件(file.py) 所使用的一般是文件中的类(.class) 第一步实例化所使用的类,然后调用类中的方法&#xff08;def) Dataset 数据集处理 import os from PIL impo…...

【Java|golang】2335. 装满杯子需要的最短总时长

现有一台饮水机&#xff0c;可以制备冷水、温水和热水。每秒钟&#xff0c;可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。 给你一个下标从 0 开始、长度为 3 的整数数组 amount &#xff0c;其中 amount[0]、amount[1] 和 amount[2] 分别表示需要装满冷水、温水和热水的…...

shell编程之sed

文章目录八、shell编程之sed8.1 工作原理8.2 sed基本语法8.3 模式空间中的编辑操作8.3.1 地址定界8.3.2 常用编辑命令8.4 sed扩展八、shell编程之sed 8.1 工作原理 sed是一种流编辑器&#xff0c;它是文本处理中非常有用的工具&#xff0c;能够完美的配合正则表达式使用&…...

安全寒假作业nginx反向代理+负载均衡上传webshell重难点+apache漏洞

1.应用场景 负载均衡作为现今解决web应用承载大流量访问问题的一种方案&#xff0c;在真实环境中得到广泛的部署。实现负载均衡的方式有很多种&#xff0c;比如 DNS 方式、HTTP 重定向方式、IP 负载均衡方式、反向代理方式等等。 比如基于dns的负载均衡&#xff1a; 当然还有…...

day35|01背包问题、416. 分割等和子集

01背包问题 有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 例&#xff1a;背包最大重量为4。 物品为&#xff1a; 重量价值物品0115物品…...

Linux内核启动(3,0.11版本)内核启动完成与进入内核main函数

这一部分是在讲解head.s代码&#xff0c;这个代码与bootsect.s和setup.s在同一目录下&#xff0c;但是head.s程序在被编译生成目标文件后会与内核其他程序一起被链接成system模块&#xff0c;位于system模块的最前面开始部分。system模块将被放置在磁盘上setup模块之后开始的扇…...

【2023】Prometheus-Alertmanager高可用集群

本次实验准备了三个节点&#xff0c;分别为laert-01~03 目录1.安装Alertmanager2.配置启动文件3.验证集群4.关于集群的配置项1.安装Alertmanager 这部分内容在三个节点上都要执行 下载安装包&#xff0c;将安装包解压至/data目录下 wget https://github.com/prometheus/aler…...

2023-2-11 刷题情况

最短路计数 题目描述 给出一个 NNN 个顶点 MMM 条边的无向无权图&#xff0c;顶点编号为 1∼N1\sim N1∼N。问从顶点 111 开始&#xff0c;到其他每个点的最短路有几条。 输入格式 第一行包含 222 个正整数 N,MN,MN,M&#xff0c;为图的顶点数与边数。 接下来 MMM 行&…...

2019_41 考研408

2019年(单链表)41.(13分)设线性表采用带头结点的单链表保存&#xff0c;链表中的结点定义如下:typedef struct node {int data;struct node* next;}NODE;请设计一个空间复杂度为O(1)且时间上尽可能高效的算法&#xff0c;重新排列L中的各结点&#xff0c;得到线性表L(q,a,,a,an…...

Linux账号与用户组

目录 用户标识符&#xff1a;UID与GID 用户账号 /etc/passwd文件结构 1、账号名称 2、密码 3、UID 4、GID 5、用户信息说明栏 6、家目录 7、shell /etc/shadow文件结构 1、账号名称 2、密码 3、最近修改密码的日期 4、密码不可被修改的天数&#xff08;与第三字…...

有趣的Hack-A-Sat黑掉卫星挑战赛——定位卫星Jackson

国家太空安全是国家安全在空间领域的表现。随着太空技术在政治、经济、军事、文化等各个领域的应用不断增加&#xff0c;太空已经成为国家赖以生存与发展的命脉之一&#xff0c;凝聚着巨大的国家利益&#xff0c;太空安全的重要性日益凸显[1]。而在信息化时代&#xff0c;太空安…...

网站版面在线设计/买淘宝店铺多少钱一个

VFM 安装&#xff1a;上传访问即可。无需数据库&#xff0c;无需编程基础。默认管理账户&#xff1a;admin/passwordVFM 支持多种语言&#xff0c;HTML5 分块文件上传&#xff0c;支持大文件&#xff0c;视网膜适配。Version 3.4.5 – 08/10/2018– New: Set Browser and App i…...

做印刷网站公司简介/网络营销计划书怎么写

最长定差子序列 状态&#xff1a; dp[i]dp[i]dp[i]表示以iii结尾的序列的最长定差子序列转移方程: dp[i]maxa[i]−a[j]diff{dp[j]1}dp[i] max_{a[i]-a[j]diff}\{dp[j]1\}dp[i]maxa[i]−a[j]diff​{dp[j]1} class Solution { public:int longestSubsequence(vector<int>…...

网站建设工作/长春seo排名外包

首先给出官网&#xff1a;http://echarts.baidu.com/examples/ 简单的教程&#xff1a;http://www.cnblogs.com/youmeng/p/4874897.html 转载于:https://www.cnblogs.com/zhubinglong/p/8678386.html...

怎么做考试资料网站/腾讯与中国联通

一、值参数&#xff1a;在使用参数时&#xff0c;是把一个值传递给函数使用的一个变量。对函数中此变量的任何修改都不会影响函数调用中指定的参数。&#xff08;由于函数只有一个返回值&#xff0c;不能用作参数的多个变量值&#xff09;。 二、引用参数&#xff1a;即函数处理…...

网站内容编辑怎么做/网络营销工具和方法

国际厂商IBM、BEA仍然以强大的综合实力占据了中间件行业的领导位置。另外从实践SOA角度而言&#xff0c;SAP、普元、金碟位于强调产品创新的创新者象限&#xff0c;成为中间件行业变革的生力军。最近&#xff0c;易观国际发布了《中国中间件厂商实力矩阵专题报告》&#xff0c;…...

信息公司网站建设方案 游戏/北京网络营销推广培训哪家好

log_file/usr/local/nagios/var/nagios.log # 定义nagios日志文件的路径cfg_file/usr/local/nagios/etc/objects/commands.cfg # “cfg_file”变量用来引用对象配置文件&#xff0c;如果有更多的对象配置文件&#xff0c;在这里依次添加即可。cfg_file…...