MySQL用户管理和授权

目录

一.用户管理

1.1.新建用户

1.2.查看用户

1.3.重命名用户rename

1.4.删除用户

1.5.修改当前登录用户密码

1.6.修改其他用户密码

1.7.忘记root 密码并找回

二.数据库用户授权

2.1.all privilege包含的权限

2.2.授予权限

①允许指定用户查询指定数据库表

②允许用户在所有终端远程连接并拥有所有权限

2.3.查看权限

2.4.撤销权限


一.用户管理

1.1.新建用户

格式:
create user '用户名'@'来源地址' [identified by [passwd] '密码'];

用户名:指定将创建的用户名;

来源地址:指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%

密码:

  • 若使用明文密码,直接输入’密码’,插入到数据库时由Mysql自动加密;
  • 若使用加密密码,需要先使用SELECT PASSWORD(‘密码’); 获取密文,再在语句中添加 PASSWORD ‘密文’;
  • 若省略“IDENTIFIED BY”部分,则用户的密码将为空(不建议使用)

明文密码的创建:

#创建用户zhuzi只允许从本机登录密码为123456
create user 'zhangrui'@'localhost' identified by '123456';#登录测试
mysql -u zhangrui -p123456

加密创建:

#获取密文
select password('123456');#创建用户时密文复制粘贴过来
create user 'shen'@'localhost' identified by password '密文';
create user 'shen'@'localhost' identified by password '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';#登录验证
mysql -u shen -p123456

1.2.查看用户

用户数据位于mysql库的user表中#切换库
use mysql;          #查看user表中的用户信息:指定字段用户,登录认证字符串,登录主机,查看数据记录
select User,authentication_string,Host from user;  

1.3.重命名用户rename

格式:
rename user '旧用户名'@'登录主机' to '新用户名'@'登录主机';示例:
#将用户shen重命名为chao
rename user 'shen'@'localhost' to 'chao'@'localhost';#查看用户信息验证
use mysql;
select User,authentication_string,Host from user;

1.4.删除用户

格式:
drop user '用户名'@'localhost';示例:
#删除用户chao
drop user 'chao'@'localhost';use mysql
#切换数据库#验证查看
select User,authentication_string,Host from user;

1.5.修改当前登录用户密码

#原密码为123456 修改为369369
set password = password('369369');

1.6.修改其他用户密码

格式:
set password for '用户名'@'localhost' = password('新密码');示例:
#修改用户zhangrui密码由123456改为abc123
set password for 'zhangrui'@'localhost' = password('abc123');

1.7.忘记root 密码并找回

找回root密码
1)修改配置文件,在[mysqld]下添加skip-grant-tables
2)重启mysqld服务,使用 mysql 命令直接进入免密进入mysql
3)执行  update mysql.user set authentication_string=password('....') where user='root';
4)还原配置文件,重启服务,使用账号密码验证登录
vim /etc/my.conf
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=4096
default-storage-engine=INNODB
max_allowed_packet=32M
server-id = 1
skip-grant-tablessystemctl restart mysqld

注意:修改密码尽量选择字母和数字组合这种比较复杂的密码,因为太简单的密码不会修改成功

二.数据库用户授权

2.1.all privilege包含的权限

all privilege 权限如下:insert(插入数据)
select(查询数据)
update(更新表的数据)
delete(删除表中数据)
create(创建库,表)
drop(删除库,表)
refemces
index(建立索引)
alter(更改表属性)
create temp orary tables
lock tables(锁表)
execute
create view(创建视图)
show view(显示视图)
create routine(创建存储过程)
alter routine(修改存储过程)e
vent(手件)
tigger on(创建触发器)

2.2.授予权限

grant语句:专门用来设置数据库用户的访问权限

  • 当指定的用户名不存在时,grant语句将会创建新的用户
  • 当指定的用户名存在时,grant语句用于修改用户信息
格式:
grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' [identified by '密码'];
  • 权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。
  • 数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“”。例如,使用“kgc.”表示授权操作的对象为 kgc数据库中的所有表。
  • ‘用户名@来源地址’:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP 地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.accp.com”、“192.168.79.%”等。
  • identified by:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分, 则用户的密码将为空。
①允许指定用户查询指定数据库表

允许用户zhangrui在本地查询test数据库中所有表的数据记录,但禁止查询其他数据库中的表的记录

#使用root用户登入数据库mysql -u root -p369369#授权*表示库下的所有表
grant select on test.* to 'zhangrui'@'localhost' identified by 'abc123';#退出数据库
quit #使用zhuo用户登入
mysql -u zhangrui -pabc123   #查看所有库
show databases;#切换库
use test;#查看所有表
show tables;

②允许用户在所有终端远程连接并拥有所有权限

允许用户zhuo在所有终端远程连接mysql,并拥有所有权限

格式:
grant all on *.* to '用户名'@'%' identified by '用户密码';示例:
grant all on *.* to 'zhangrui'@'%' identified by 'abc123';

2.3.查看权限

格式:
show grants for 用户名@来源地址;示例:
show grants for 'zhangrui'@'localhost';

2.4.撤销权限

#撤销所有权限格式:
revoke all on *.* from '用户名'@'来源地址';#撤销test库权限格式:
revoke select on test.* from '用户名'@'来源地址';示例:撤销用户zhangrui的所有权限
#查看用户zhuo的权限
show grants for 'zhangrui'@'localhost';#撤销test库权限格式:
revoke select on test.* from 'zhangrui'@'localhost';#撤销用户zhuo所有主机登录的所有权限
revoke all on *.* from 'zhangrui'@'%';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/179198.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FlexmonsterPivotTable-2.9.63 LICENSE

FlexmonsterPivotTable-v2.9.63用于网络报告的数据透视表组件,用于可视化业务数据的最强大的 JavaScript 工具 与任何技术堆栈集成 该组件可与任何技术堆栈无缝协作: 与Angular、React、jQuery、Vue等 完美集成 没有服务器端依赖项 只需几行代码 即可开始…

Python接口自动化测试实战,一篇足矣

接口自动化测试是指通过编写程序来模拟用户的行为,对接口进行自动化测试。Python是一种流行的编程语言,它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 1、接口自动化测试框架 在Python接口自动化测试中,我们…

社区论坛在线交流网站系统源码+SEO优化 带前后端完整搭建教程

大家好,今天罗峰来给大家分享一款社区论坛在线交流网站系统源码。社区论坛在线交流在当下时时代还是很火的。现在人们对于在线交流和互动的需求不断增加。社区论坛作为一种传统的在线交流方式,仍然有着广泛的市场需求和用户群体。然而,现有的…

MySQL - Zero date value prohibited

问题: timestamp字段报Caused by: com.mysql.cj.exceptions.DataReadException: Zero date value prohibited 原因: timestamp字段存入了0值, 超出了最小值1900-01-01 00:00:00, 转Java对象的时候报错 解决: 1.修复或删除原数据 2. mysqlurl 中添加zeroDateTimeBehaviorconve…

【Linux】 shutdown 命令使用

shutdown 命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。使用权限:系统管理者。 语法 shutdown [选项] 时间 [警告信息] 命令选项及作用 执行令 man shutdown 执行命令结果 参…

替代知网!中国科学院发布公益学术平台,可免费获取8000万篇论文专著!

可检索1.7亿篇科技文献的 公益平台来了! 11月1日由中国科学院等单位联合建设的 PubScholar公益学术平台 正式对社会公众开放 该平台首期整合集成了 中国科学院的科技成果资源 科技出版资源和学术交流资源 内容包含期刊论文、学位论文 预发布论文、专利文献、…

时间复杂度的计算技巧-算法模型中的时间复杂度如何计算,有哪些技巧呢

大家好,我是微学AI,今天给大家介绍一下时间复杂度的计算技巧-算法模型中的时间复杂度如何计算,有哪些技巧呢,算法的时间复杂度是评估算法性能和效率的一种方式,它表示算法需要执行多少次基本操作才能完成其任务&#x…

LuaHttp库写的一个简单的爬虫

LuaHttp库是一个基于Lua语言的HTTP客户端库,可以用于爬取网站数据。与Python的Scrapy框架类似,LuaHttp库也可以实现网站数据的抓取,并且可以将抓取到的数据保存到数据库中。不过需要注意的是,LuaHttp库并不像Scrapy框架那样具有完…

【C++ 系列文章 -- 程序员考试 201811 下午场 C++ 专题 】

1.1 C 题目六 阅读下列说明和C代码,填写程序中的空(1) ~(5),将解答写入答题纸的对应栏内。 【说明】 以下C代码实现一个简单乐器系统,音乐类(Music)可以使用…

VMware——VMware17设置WindowServer2012R2环境静态IP及关闭防火墙

目录 一、VMware17设置WindowServer2012R2环境静态IP1.1、工具栏虚拟机的设置步骤1.2、工具栏编辑的设置步骤1.3、静态IP的设置步骤 二、VMware17关闭WindowServer2012R2环境防火墙 一、VMware17设置WindowServer2012R2环境静态IP 1.1、工具栏虚拟机的设置步骤 打开VMware虚拟…

【工具】【IDE】Qt Creator社区版

Qt Creator社区版下载地址:https://download.qt.io/archive/qt/ 参考:https://cloud.tencent.com/developer/article/2084698?areaSource102001.8&traceIduMchNghqp8gWPdFHvSOGg MAC安装并配置Qt(超级简单版) 1.安装brew&…

el-table 列分页

<template><div><el-table:data"tableData":key"tampTime"style"width: 100%"><el-table-columnprop"name"label"姓名"width"180"></el-table-column><el-table-columnprop&quo…

上传LaTeX版本的NeurIPS文章到arXiv总是Failed的解决方案

往arXiv上传NeurIPS模版文章时&#xff0c;一直出现两处报错&#xff0c;一处是下图中的图片错误&#xff1a; 但是&#xff0c;我怀疑是不是图片并排放置的minipage不可用&#xff0c;于是改成了正常的图片形式来测试&#xff1a; 仍然是相同的错误&#xff0c;于是我又尝试去…

人工智能基础_机器学习014_BGD批量梯度下降公式更新_进一步推导_SGD随机梯度下降和MBGD小批量梯度下降公式进一步推导---人工智能工作笔记0054

然后我们先来看BGD批量梯度下降,可以看到这里,其实这个公式来源于 梯度下降的公式对吧,其实就是对原始梯度下降公式求偏导以后的梯度下降公式,然后 使用所有样本进行梯度下降得来的,可以看到* 1/n 其实就是求了一个平均数对吧.所有样本的平均数. 然后我们看,我们这里* 1/n那么…

从 Java 到 Rust,Substrate 优秀学员亲述 Web3 入门之路

你知道如何从 0 到 1 转行 Web3&#xff0c;找到技术开发岗位的一席之地吗&#xff1f;从后端核心开发到 Web3 测试&#xff0c;Substrate 课程优秀学员的区块链探索之路有哪些心得体会&#xff1f;10 月 26 日晚 20:00&#xff0c;第二期 Block Space 成长路径系列主题 AMA 活…

美团面试:Redis 除了缓存还能做什么?可以做消息队列吗?

这是一道面试中常见的 Redis 基础面试题,主要考察求职者对于 Redis 应用场景的了解。 即使不准备面试也建议看看,实际开发中也能够用到。 内容概览: Redis 除了做缓存,还能做什么? 分布式锁:通过 Redis 来做分布式锁是一种比较常见的方式。通常情况下,我们都是基于 Re…

基于CMFB余弦调制滤波器组的频谱响应matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、CMFB余弦调制滤波器组原理 4.2、CMFB调制过程 4.3、CMFB特点 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ......................…

【触想智能】4U触摸工控机具有哪些优势?

工控机也叫工控主机&#xff0c;和我们常见的普通电脑主机是一样的&#xff0c;都是由CPU、主板、内存、硬盘、电源以及机箱组成的。 工控机有很多分类&#xff0c;有无风扇工控机、嵌入式工控机、上架式工控机、4U触摸工控机等。上架式工控机在市场上是比较受欢迎的&#xff0…

【LeetCode】剑指 Offer Ⅱ 第8章:树(12道题) -- Java Version

题库链接&#xff1a;https://leetcode.cn/problem-list/e8X3pBZi/ 类型题目解决方案二叉树的深搜剑指 Offer II 047. 二叉树剪枝递归&#xff08;深搜&#xff09;&#xff1a;二叉树的后序遍历 &#xff08;⭐&#xff09;剑指 Offer II 048. 序列化和反序列化二叉树递归&…

【idea】生成banner.txt

Spring Boot banner在线生成工具&#xff0c;制作下载英文banner.txt&#xff0c;修改替换banner.txt文字实现自定义&#xff0c;个性化启动banner-bootschool.netSpring Boot banner工具实现在线生成banner&#xff0c;轻松修改替换实现自定义banner&#xff0c;让banner.txt文…