数据库应用:MySQL数据库用户管理

news2024/11/24 13:16:16

目录

一、理论

1.用户管理

2.授权控制

二、实验

1.数据库用户管理

2.数据库用户授权

三、总结


一、理论

1.用户管理

(1)用户信息

MySQL 中的用户信息,都存储在系统数据库 mysql 的 user 表中。

use mysql;
select * from user limit 1\G

select User,Hst,authentication_string from user;

 说明:
 ① user:用户名。
 ② host:表示这个用户可以从哪个主机登录(如果是 localhost,表示只能从本机登录)。
 ③ authentication_string:用户密码通过 password 函数加密后的。
 ④ *_priv:用户拥有的权限。

(2)创建用户

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];

① '用户名':指定将创建的用户名.
② '来源地址':指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录,可用通配符%
③ '密码':若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;
若使用加密密码,需要先使用SELECT PASSWORD('密码');获取密文,再在语句中添PASSWORD '密文';
④ 若省略“IDENTIFIED BY"部分,则用户的密码将为空(不建议使用)

(3)删除用户

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

(4)修改用户密码

# root用户修改指定用户的密码
set password for '用户名'@'登录主机'=password('新的密码');
或
update user set 密码设置的地方=password('密码') where User='用户名' and Host='登录主机';# 用户自己改自己的密码
set password=password('新的密码');

(5)重命名

RENAME USER '旧用户名'@'localhost' TO '新用户名'@'localhost';

(6)忘记密码

忘记root密码的解决办法:

修改/etc/my.cnf 配置文件,免密登陆mysql
vim /etc/my.cnf
[mysqld]
skip-grant-tables    #添加,使登录mysql不使用授权表

systemctl restart mysqld
mysql    #直接登录

然后使用SQL语句修改密码
UPDATE mysql.user SET AUTHENTICATION_STRING = PASSWORD('abc123') where user='root';

FLUSH PRIVILEGES;
quit
mysql -u root -pabc123
PS:最后再把/etc/my.cnf 配置文件里的skip-grant-tables 删除,并重启mysql服务

2.授权控制

 

(1)MySQL 中的权限

在这里插入图片描述

 (2)给用户授权

新创建的用户几乎没有权限,因此在创建用户后需要给用户授权。

grant 权限列表 on 库名.对象名 to '用户名'@'登录主机' [identified by '密码'];

说明:
 ① ‘用户名’@‘登录主机’:表示要给哪个用户赋予权限。
 ② 库名.对象名:表示要给用户赋予在哪个对象上的权限。
 ③ 权限列表:表示要给用户赋予哪种权限(若有多个权限则用逗号分隔开)。
 ④ identified by ‘密码’:可选项。如果该用户存在,则在赋予权限的同时修改该用户的密码;如果该用户不存在,则创建该用户。

如果发现赋予权限后,没有生效,则执行命令flush privileges;,但实际上该命令并没有什么效果。

实际上最有用的方法就是,直接退出重新登录,这样必定会生效。

(3)回收权限

revoke 权限列表 on 库名.对象名 from '用户名'@'登录主机';

(4)授权用户权限 

表1 授权用户权限

序号权限
1insert(插入数据)
2select(查询数据)
3update(更新表的数据)
4delete (删除表中的数据)
5drop     (删除库 和表)
6cerate  (创建库,表)
7index    (创建索引)
8alter     (更改表的属性)
9create view  (创建视图)
10create routine  (创建存储过程)
11alter routine   (修改存存储过程)
12event        (事件)
13trigger on    (创建触发器)

二、实验

1.数据库用户管理

(1)新建用户

 

(2)查看用户

 

(3)重命名

 

(4)删除用户

 

(5)修改当前密码

SET PASSWORD = PASSWORD('abc123');

(6)修改其他用户密码

SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('abc123T);
SET PASSWORD FOR 'david'@'localhost' = PASSWORD('abc123T);

2.数据库用户授权

(1)授予权限

 

(2)查看权限

 

(3)撤销权限

 

三、总结

MySQL 中的用户信息,都存储在系统数据库 mysql 的 user 表中。

如果发现赋予权限后,没有生效,则执行命令flush privileges;

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

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

相关文章

【038】解码C++ STL:探索string容器的无限可能与鲜为人知的技巧

解码C STL:探索string容器的无限可能与鲜为人知的技巧 引言一、STL概述1.1、STL的基本概念1.2、STL的六大组件 二、string类2.1、string容器基本概念2.2、string容器常用操作2.2.1、string构造函数2.2.2、string基本赋值操作2.2.3、string存取字符操作原型2.2.4、st…

我们搬家啦!新家园,新征程,新篇章

7月10日 KaiwuDB 上海新总部开业典礼暨 “浪潮数据库产业联合实验室”揭牌仪式 于上海市浦东新区顺利举行 新起点,新征程,新篇章 🎉🎉 剪彩仪式 7月10日,上海浦东新区科技和经济委员会副主任夏玉忠,上…

行业追踪,2023-07-11,关于自动生成文章代码重构,明天开始发布新的追踪文章,敬请期待

自动复盘 2023-07-12 成交额超过 100 亿 排名靠前,macd柱由绿转红 成交量要大于均线 有必要给每个行业加一个上级的归类,这样更能体现主流方向 rps 有时候比较滞后,但不少是欲杨先抑, 应该持续跟踪,等 macd 反转时参与…

GoLand导入redis的github包失败

GoLand导入redis依赖失败 网上有下载guryburd和gomodel的,这里按照官网文档安装依赖 以下命令在项目的根目录执行 初始化一个Go模块: go mod init github.com/my/repoTo install go-redis/v9:要安装go-redis/v9: go get github.com/redis/…

大模型技术发展概述 -(二)

文本内容参考论文《A Survey of Large Language Models》 论文标题:A Survey of Large Language Models 论文链接:https://arxiv.org/pdf/2303.18223v10.pdf 大模型技术发展概述 -(二) 4. LLM预训练4.1 数据收集4.1.1 数据源4.1.2…

Zookeeper集群

目录 Zookeeper 概述 Zookeeper 定义 Zookeeper 工作机制 Zookeeper 特点 Zookeeper 数据结构 Zookeeper 应用场景 Zookeeper 选举机制 ●第一次启动选举机制 ●非第一次启动选举机制 部署 Zookeeper 集群 1.安装前准备 关闭防火墙 安装 JDK 下载安装包 2.安装 …

从网络安全行业人才需求讲讲【个人规划】

如果你是一名正在找工作的网络安全方向大学生,或者是刚刚踏入网络安全领域的新手,这篇文章很适合你,如果你是一名老网安人,看看有哪些你中招了。 当你打开BOSS直聘、拉钩等招聘类网站后,在首页的快速导航页面很难找到关…

ruoyi导入excel报错数据越界

一、报错截图: 二、报错原因 实体类 三、修改方式 将实体类Excel注释 修改去掉 readConverterExp部分,重新导入后成功。 四、出错原因

【雕爷学编程】Arduino动手做(138)---64位WS2812点阵屏模块3

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

【基于openEuler上安装单机openGauss2.1.0企业版】

【基于openEuler上安装openGauss2.1.0企业版】 一、环境说明二、安装步骤 一、环境说明 华为云ECS 规格 8核32G操作系统openEuler 20.03 TLS 二、安装步骤 修改操作系统字符集为utf8 cat >>/etc/profile<<EOF export LANGen_US.UTF-8 EOF让环境变量生效 source /…

ASCII码对照表 十六进制的字符对照表

ASCII码对照表&#xff08;包括二进制、十进制十六进制和字符&#xff09; 可以显示 不可以显示

天津良心web前端培训学校品牌汇总(Web前端的起步薪资)

现在很多小伙伴想要了解web前端开发技术知识&#xff0c;但是不知道现在学习web前端值不值得&#xff0c;会有很多小伙伴开始犹豫学不学&#xff0c;学完能不能找到工作&#xff0c;那下面小编就通过下面三点&#xff0c;来给大家简单分析一下web行业&#xff0c;以及要不要报班…

Layui之可调参数的动态轮播图---好玩的小玩意儿~

⭐ 本期精彩&#xff1a;利用Layui制作轮播图 效果图&#xff1a; 前台代码&#xff1a; JS代码&#xff1a; 设置长宽高的事件代码&#xff1a; //事件carousel.on(change(test1), function(res){console.log(res)});var $ layui.$, active {set: function(othis){var THIS…

intellij idea开发微信远程小程序

原理 intellij idea开发微信原生小程序的基本原理是&#xff0c;在idea中编辑目标文件&#xff08;wxml、wxss&#xff09;&#xff0c;微信开发者工具热加载改动&#xff0c;从而实时看到效果&#xff0c;微信开发者工具的提示、高亮等能力&#xff0c;都太弱了&#xff0c;所…

Android自动化测试-UiAutomator环境搭建

目录 一、环境准备 二、新建Android Studio工程 三、测试实例 总结&#xff1a; 一、环境准备 1. 安装android sdk&#xff0c;并配置环境变量 2. 安装android studio&#xff0c;国内访问官网受限&#xff0c;如果下载不到&#xff0c;可以到我的百度云盘下载&#xff1a; …

Java设计模式之行为型-责任链模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 五、总结 一、基础概念 责任链模式是一种行为设计模式,它允许你将请求沿着处理者链进行发送。请求会被链上每个处理者处理,直到请求被处理完毕。该模式主要解决的是请求的发送者和多个请求处理者之间建立一条链…

交易策略对交易者多重要,4点讲明白

初入交易市场的交易者&#xff0c;一定听过交易策略你对交易者的重要性&#xff0c;但是您可能不明白为什么&#xff0c;今天Forexclub通过4点给初入交易市场的交易者&#xff0c;讲解交易策略的重要。希望能帮助到各位刚进入交易市场的初学者。 首先&#xff0c;当交易者确定好…

数字农业农村数字化整体解决方案

导读&#xff1a;原文《数字农业农村解决方案 》共69页ppt&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考 完整版领取方式 完整版领取方式&#xff1a; 如需获取完整的电…

LangChain快速开始

什么是LangChain langchain 是一个框架&#xff0c; 用于连接大语言模型的框架&#xff0c; 它提供了一整套工具、组件和接口&#xff0c;简化上层应用与大语言模型&#xff0c;聊天模型的的过程&#xff0c;可轻松管理与模型的交互&#xff0c;以及跟多组件链接起来。 在 La…

创建空对象{}的数组,空对象地址是否指向同一处

今天&#xff0c;突发奇想&#xff0c;突然想到这个奇葩的问题&#xff0c;实践才是检验真理的唯一标准&#xff0c;下面一一举例验证这个问题的可能性&#x1f601;&#x1f601;&#x1f601;。 首先&#xff0c;创建空对象的数组的方式有多种 &#x1f440;&#x1f440;方…