【MySQL】用户管理 -- 详解

如果我们只能使用  root  用户,这样存在安全隐患。这时就需要使用  MySQL  的用户管理。


一、 用户

1、用户信息

MySQL 中的用户都存储在系统数据库 MySQL 的 user  表中。
字段解释:
  • host:表示这个用户可以从哪个主机登陆,如果是 localhost,表示只能从本机登陆。
  • user:用户名。
  • authentication_string:用户密码通过 password 函数加密后的。
  • *_priv:用户拥有的权限。

2、创建用户

create user '用户名 '@' 登陆主机/ip ' identified by ' 密码 ';

提示:如果遇到错误描述:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

解决方法:先刷新一下权限表,然后再试一次:

flush privileges;


创建用户时带上了 %:(此时就可以在 Windows 下远程访问 Linux 客户端。)


此时便可以使用新账号新密码进行登陆。
注意:可能实际在设置密码的时候,因为 MySQL 本身的认证等级比较高,一些简单的密码无法设置,可能会报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


【解决方案】
(1)查看 MySQL 初始的密码策略

查看密码设置相关要求:

SHOW VARIABLES LIKE 'validate_password%';


(2)设置密码的验证强度等级

设置 validate_password_policy 的全局参数为 LOW 即可,输入设值语句:

set global validate_password_policy=LOW;


(3)设置密码长度

当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,输入设值语句:

set global validate_password_length=6;


(4)密码策略修改

现在可以为 MySQL 设置简单密码了,只要满足六位的长度即可,输入修改语句:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

可以看到修改成功,表示密码策略修改成功了。


注意:在默认密码的长度最小值为 4 ,由大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,只要设置密码的长度小于 3 ,都将自动设值为 4。  

注意:关于新增用户这里,需要注意,不要轻易添加一个可以从任意地方登陆的 user。 


【扩展】

关于 MySQL 密码策略相关参数:
1)validate_password_length  固定密码的总长度。
2)validate_password_dictionary_file 指定密码验证的文件路径。
3)validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数。
4)validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数。
5)validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM。
关于 validate_password_policy 的取值:

  • 0/LOW:只验证长度。
  • 1/MEDIUM:验证长度、数字、大小写、特殊字符。
  • 2/STRONG:验证长度、数字、大小写、特殊字符、字典文件。

6)validate_password_special_char_count 整个密码中至少要包含特殊字符的个数。


3、删除用户

drop user '用户名'@'主机名';


4、修改用户密码

(1)自己改自己密码

set password=password('新的密码');


(2)root 用户修改指定用户的密码
set password for ' 用户名 '@' 主机名 '=password(' 新的密码 ');

注意:凡是有关密码的命令行,MySQL 不会记录下来,上下翻找不到。 


二、数据库的权限

MySQL 数据库提供的权限列表:


1、给用户授权

刚创建的用户没有任何权限,需要给用户授权。

grant 权限列表 on 库.对象名 to ' 用户名 '@' 登陆位置 ' [identified by ' 密码 '];
  • 权限列表,多个权限用逗号分开 
grant select on ...
grant select, delete, create on ....

grant all [privileges] on ... 表示赋予该用户在该对象上的所有权限

  • *.*:代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
  • .*:表示某个数据库中的所有数据对象(表,视图,存储过程等)
  • identified by 可选。如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

  • 终端 A(root 账号) 


  • 终端 B(zhangsan 账号)(这里在远端效果一致)


注意 :如果发现赋权限后,没有生效,执行如下指令:
flush privileges;

2、回收权限

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置'; 

  • 终端 A(root 账号) 


  • 终端 B(zhangsan 账号)(这里在远端效果一致) 

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

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

相关文章

【三】【SQL Server】如何运用SQL Server中查询设计器通关数据库期末查询大题

数据库学生选择1122 数据库展示 course表展示 SC表展示 student表展示 数据库学生选课1122_1 第一题 第二题 第三题 第四题 第五题 数据库学生选课1122_2 第六题 第七题 第八题 第九题 第十题 结尾 最后,感谢您阅读我的文章,希望这些内容能够对您有所启…

实践:qemu 运行 linux riscv with AIA(APLICIMSIC)

RISCV架构 Linux AIA支持 目标:在 Qemu 中运行一个支持 riscv aia 的 linux 翻译参考自:https://lwn.net/Articles/963231/ 文章日期:2024年2月22日,星期四(截至2024年3月,最新) 这个网站里在不…

Spring Boot工程集成验证码生成与验证功能教程

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

《Vite 报错》ReferenceError: module is not defined in ES module scope

ReferenceError: module is not defined in ES module scope 解决方案 postcss.config.js 要改为 postcss.config.cjs,也就是 .cjs 后缀。 原因解析 下图提示,packages.json 中的属性 type 设置为 module。所有 *.js 文件现在都被解释为 ESM&#xff…

电商店群系统的搭建需要用到的官方接口如何申请?

电商电子商务企业往往都会需要再很多平台上面铺货,上传商品。 高科技的今天,我们已经不需要手动一个个品去上传了。那通过官方接口,如何实现快速铺货呢? 1688官方开放平台的API接口类型众多,并不是所有的企业都能申请…

GitHub Pages部署静态页面

GitHub Pages是GitHub提供的静态页面托管服务,可以用来托管个人博客、项目文档等静态页面。GitHub Pages支持Jekyll,可以使用Jekyll构建博客,也可以使用其他静态页面生成器。现在GitHub Pages也在公测通过工作流部署静态页面,可以…

鸿蒙文章专题-2021年鸿蒙相关的文章废弃

#原因 至于为什么说2021年我的鸿蒙专栏的文章废弃了,只是说没有了参考意义,是因为鸿蒙4.0以前的版本语言从以Java为主过渡为以ArkTS为主。以前的Java版本的工程已经无法再使用了,后续的开发都必须以ArkTS开发语言为主。 其中而且整个项目结构…

三. 开发环境搭建

目录 一. Ubuntu 和 Windows 文件互传 1.1 VMware Tools 1.2 FileZilla 二. Ubuntu 下 NFS 和 SSH 服务开启 2.1 NFS 服务开启 ​编辑 2.2 SSH 服务开启 三. Ubuntu 交叉编译工具链安装 四. vscode的remote-ssh远程连接虚拟机 4.1 Windows的vscode安装 4.2 vscode远…

chatGPT的耳朵!OpenAI的开源语音识别AI:Whisper !

语音识别是通用人工智能的重要一环!可以说是AI的耳朵! 它可以让机器理解人类的语音,并将其转换为文本或其他形式的输出。 语音识别的应用场景非常广泛,比如智能助理、语音搜索、语音翻译、语音输入等等。 然而,语音…

专题1 - 双指针 - leetcode 11. 盛最多水的容器

leetcode 11. 盛最多水的容器 1. leetcode 11. 盛最多水的容器1. 题目详情1. 原题链接2. 基础框架 2. 解题思路1. 题目分析2. 算法原理3. 时间复杂度 3. 代码实现4. 知识与收获 1. leetcode 11. 盛最多水的容器 1. 题目详情 给定一个长度为 n 的整数数组 height 。有 n 条垂线…

分享一波非标设计资源合集

01 非标电表箱柜 本项目为创博智慧云产业研发中心的非标配电箱、电表箱设计原理图,地块一层含dwg图纸一份,包括配电箱壳体尺寸、原理图、接线图等20多种设计图纸。 02 住宅楼高压 低压 非标箱原理和箱体图 本图纸为高级住宅小区高低压非标箱设计原理…

Unity:Animation 三 Playable、ImportModel

目录​​​​​​​ 1. Playables API 1.1 Playable vs Animation 1.2 Advantages of using the Playables API 1.3 PlayableGraph Visualizer 2. Creating models outside of Unity 2.1 Preparing your model files for export 2.1.1 Scaling factors 2.1.2 优化模型文…

开源文生图大模型Playground v2.5发布:超越SD、DALL·E 3和 Midjourney

前言 在AI技术迅速发展的今天,文生图模型成为了艺术创作、设计创新等领域的重要工具。Playground v2.5的发布,不仅在技术上取得了突破,更在开源文化的推广与实践上迈出了重要一步。 Huggingface模型下载:https://huggingface.co/…

图论练习5

Going Home Here 解题思路 模板 二分图最优匹配,前提是有完美匹配(即存在一一配对)左右集合分别有顶标,当时,为有效边,即选中初始对于左集合每个点,选择其连边中最优的,然后对于每…

Sqli-labs靶场第18关详解[Sqli-labs-less-18]自动化注入-SQLmap工具注入

Sqli-labs-Less-18 通过测试发现,在登录界面没有注入点,通过已知账号密码admin,admin进行登录发现: 返回了User Agent,设想如果在User Agent尝试加上注入语句(报错注入),测试是否会…

Unity中关于继承ScriptableObject的类

在游戏中我们会经常看到一些.asset的配置文件,而这些文件就是用一个自定义的类去继承ScriptableObject来生成的。比如当前有一些零散特效需要预加载,这个时候我们可以声明一个类去保存这些零散特效对象的信息,然后统一读取加载。 代码&#…

JavaScript极速入门(1)

初识JavaScript JavaScript是什么 JavaScript(简称JS),是一个脚本语言,解释型或者即时编译型语言.虽然它是作为开发Web页面的脚本语言而著名,但是也应用到了很多非浏览器的环境中. 看似这门语言叫JavaScript,其实在最初发明之初,这门语言的名字其实是在蹭Java的热度,实际上和…

【LeetCode】876_链表的中间结点_C

题目描述 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 https://leetcode.cn/problems/middle-of-the-linked-list/description/ 示例 提示&#xff1a; 链表的结点数范围是 [1, 100]1 <…

Subversion svn 开源的版本控制系统入门介绍 VCS

拓展阅读 Subversion 开源的版本控制系统入门介绍 VCS Git 开源的版本控制系统-01-入门使用介绍 Git 开源的版本控制系统-02-base usage 基本用法 Git 开源的版本控制系统-03-时间数据回溯 Git 开源的版本控制系统-04-branch manage 分支管理 Git 开源的版本控制系统-05-…

UE5数字孪生系列笔记(一)

智慧城市数字孪生系统 虚幻引擎连接数据库 将自己的mysql版本的libmysql.dll替换掉插件里面的libmysql.dll 然后将这个插件目录复制到虚幻项目目录下 然后添加这个插件即可 新建一个UMG&#xff0c;添加一个按钮试试&#xff0c;数据库是否连接 将UI添加到视口 打印是否连接…