MySQL数据库用户管理和授权

news2024/11/17 9:54:49

一、数据库用户管理

1. 创建用户

要创建新用户,可以使用 CREATE USER 语句。语法如下:

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
  • '用户名':指定要创建的用户名。
  • '来源地址':指定用户可以从哪些主机登录,使用 IP 地址、网段、主机名的形式,本地用户可用 localhost,允许任意主机登录可用通配符 %
  • '密码':若使用明文密码,直接输入 '密码',数据库会自动加密;若使用加密密码,需要先使用 SELECT PASSWORD('密码'); 获取密文,再在语句中使用 PASSWORD '密文';若省略 IDENTIFIED BY 部分,则用户的密码为空(不建议使用)。

示例:

CREATE USER 'user1'@'localhost' IDENTIFIED BY '123456';
SELECT PASSWORD('abc123');
CREATE USER 'user2'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';

2. 查看用户信息

用户信息保存在 MySQL 数据库的 user 表中,可以使用以下语句查看:

USE mysql;
SELECT User, authentication_string, Host FROM user;

3. 重命名用户

要重命名用户,可以使用 RENAME USER 语句:

RENAME USER '旧用户名'@'来源地址' TO '新用户名'@'来源地址';

示例:

RENAME USER 'zhangsan'@'localhost' TO 'lisi'@'localhost';

4. 删除用户

要删除用户,可以使用 DROP USER 语句:

DROP USER '用户名'@'来源地址';

示例:
DROP USER 'lisi'@'localhost';

5. 修改密码

  • 修改当前用户密码:

SET PASSWORD = PASSWORD('新密码');
  • 修改其他用户密码:
SET PASSWORD FOR '用户名'@'来源地址' = PASSWORD('新密码');

示例:

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

6. 忘记 root 密码的解决办法

① 修改 /etc/my.cnf 配置文件,添加 skip-grant-tables 以免密登录 MySQL:

[mysqld]
skip-grant-tables

② 重启 MySQL 服务:

systemctl restart mysqld

③ 直接登录 MySQL:

mysql

④ 使用 SQL 语句修改 root 密码:

UPDATE mysql.user SET authentication_string = PASSWORD('新密码') WHERE user = 'root';
FLUSH PRIVILEGES;

使用 FLUSH PRIVILEGES; 命令使得密码更改立即生效。

在修改后quit退出mysql,再把/etc/my.cnf 配置文件里的skip-grant-tables 删除或注释,并重启mysql服务

二 、数据库用户授权

1. 授予权限

要授予用户权限,可以使用 GRANT 语句:

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

1.1 权限列表

  • all (所有权限)
  • insert (插入数据)
  • select (查询数据)
  • update (更新表的数据)
  • delete (删除表中数据)
  • create (创建库,表)
  • drop (删除库,表)
  • refernces (创建外键引用)
  • index (建立索引)
  • alter (更改表属性)
  • create temp orary tableslock tables (锁表)
  • execute (执行存储过程)
  • create view (创建视图)
  • show view (显示视图)
  • create routine (创建存储过程)
  • alter routine (修改存储过程)
  • event (事件)
  • trigger on (创建触发器)
     

1.2 示例:

允许用户 zhangsan 在本地查询 school 数据库中的所有表的数据记录:

GRANT SELECT ON school.* TO 'zhangsan'@'localhost' IDENTIFIED BY 'abc123';

允许用户 lisi 在所有终端远程连接 MySQL,并拥有所有权限:

GRANT ALL PRIVILEGES ON *.* TO 'lisi'@'%' IDENTIFIED BY '123456';

允许用户 lisi 在指定 IP 地址上连接,并拥有 kgc 数据库的所有权限:

GRANT ALL PRIVILEGES ON kgc.* TO 'lisi'@'192.168.10.2' IDENTIFIED BY 'abc123';

2. 查看权限

要查看用户的权限,可以使用 SHOW GRANTS 语句:

SHOW GRANTS FOR '用户名'@'来源地址';

示例:
SHOW GRANTS FOR 'lisi'@'%';

3. 撤销权限

要撤销用户的权限,可以使用 REVOKE 语句:

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'来源地址';

示例:

撤销用户 lisi 在所有终端的所有权限:

REVOKE ALL ON *.* FROM 'lisi'@'%';

查看用户 lisi 撤销后的权限:

SHOW GRANTS FOR 'lisi'@'%';

注意: USAGE 权限仅允许用户登录数据库,不能执行任何操作,而且 USAGE 权限不能被撤销,即 REVOKE 不能删除用户。

4. 刷新权限

在修改权限后,需要刷新权限以使更改生效:

FLUSH PRIVILEGES;

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

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

相关文章

【科研】如何查询导师的国家自然科学基金

国家自然科学基金查询工具 下拉则可以看到国自然基金 点进去可以看到相关的成果

【鸿蒙开发从0到1 day02】

css初体验 一.css引入方式二. 标签选择器三.类选择器四. id选择器五.通配符选择器六.画盒子七.文字控制属性八.水平对齐方式-图片九.文本修饰线十.文字颜色取值十一.调试工具十二.复合选择器十三.伪类选择器十四.css的特性十五.背景图十六.背景图位置十七.背景图的缩放十八.标签…

iOS巨魔商店免越狱作弊解决方案

众所周知,在iOS独特的闭源生态下,官方唯一的应用下载渠道是App Store,应用下载会经过层层审核与测试来保障其安全性与稳定性,未经审核的应用将无法下载到手机。 这一举措限制了用户获取非官方或破解版应用的可能性,与…

Java:泛型

文章目录 1 基础概念1.1 泛型概念1.2 泛型好处 2 泛型2.1 泛型类2.1.1. 泛型在父子继承关系上的表现 2.2 泛型接口2.2.1 案例 2.3 泛型方法2.4 泛型的通配2.5 泛型的擦除 1 基础概念 学习目标: 理解泛型的概念及掌握泛型的好处 泛型类、泛型接口的定义 理解泛型在…

机器学习课程学习周报十

机器学习课程学习周报十 文章目录 机器学习课程学习周报十摘要Abstract一、机器学习部分1.1 生成对抗网络1.2 生成器与辨别器的训练过程1.3 信息论1.3.1 信息量1.3.2 熵1.3.3 交叉熵1.3.4 相对熵/KL散度1.3.5 交叉熵损失函数1.3.6 JS散度 1.4 GAN的理论介绍 总结 摘要 本周学习…

知识竞赛活动中的一些新颖特殊的赛制

以下知识竞赛海活动一些特殊新颖的竞赛规则,可以作为特殊情况下的参考。 (一)争分夺秒 答题选手:各队1号选手。1和2号队、3和4号队、5和6号队、7和8号队各为一组。 答题步骤:1号队和2号队1号选手同时离开座位&#x…

企业如何防止内部人员泄密?(5种方法详细说明)

企业内部信息泄密问题已经成为许多企业的严重威胁。随着数字化办公的普及,企业信息泄密的风险越来越高。内部人员泄密问题更是防不胜防,因此企业必须采取有效的措施来防止内部人员泄密。以下是五种可以帮助企业防止内部人员泄密的方法: 1. 使…

【412】【统计近似相等数对 I】

我的思路: 两层循环找数组两个数 然后进行1次过滤,如果数字相同直接下一组 不相同的话就要进行2次过滤 方便处理,转移到str格式 change函数用于比较两个输入的字符串是否相同 change中使用两层循环暴力调用两位数位进行交换比较&#xf…

SpringBoot 新手入门(实操)

Spring Boot 是一个开源框架,旨在简化基于 Spring 的 Java 应用程序的开发。它通过提供一系列默认配置和约定大于配置的理念,让开发者可以更快速地创建和部署应用。以下是一个 Spring Boot 新手入门的实操指南,帮助你从零开始创建一个简单的 …

Gitee上传项目(从0开始)

1.默认你Git已经下载好的情况下。 下载好的两种显示: 1.右击桌面显示这个 2.如果没有情况1出现,需要自己去创建快捷方式 2.去网站创建仓库 网站参考:yanyongzhitest/java_web - 码云 - 开源中国 (gitee.com) 新建仓库: 仓库名…

科研绘图系列:R语言基因PPI互作网络图(PPI network plot )

介绍 基因的PPT互作网络图。 加载R包 导入所需要的R包,在导入前需要用户自己安装。 library("tidyverse") library("magrittr") library("here") library("janitor") library("ggpubr") library("ComplexHeatmap&…

js函数方法apply,bind,call,手写new操作符

函数方法 函数方法可以用来改变函数的this指向,对于内置的标准函数来说,改变this就相当于改变了函数的作用目标;比如说,对于一个对象的方法toString(),可以将它的使用目标修改成指定的参数, 这里原本是对o…

大语言模型数据增强与模型蒸馏解决方案

背景 在人工智能和自然语言处理领域,大语言模型通过训练数百亿甚至上千亿参数,实现了出色的文本生成、翻译、总结等任务。然而,这些模型的训练和推理过程需要大量的计算资源,使得它们的实际开发应用成本非常高;其次&a…

Android经典实战之OkDownload:一个经典强大的文件下载开源库,支持断点续传

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 OkDownload 是一个为 Android 平台设计的开源下载框架,它支持多线程下载、多任务处理、断点续传等功能,并且具有可靠性、…

8款好用的电脑监控软件推荐?(一口气了解8款!)赶紧Get吧!

电脑监控软件成为了企业和个人管理电脑、提高工作效率、保护信息安全的重要工具。 这些软件不仅能够实时监控电脑的使用情况,还能帮助管理者制定合理的工作计划,预防潜在的安全风险。 本文将为您详细介绍八款功能强大、易于使用的电脑监控软件&#xff…

stm32之软件I2C读写MPU6050陀螺仪、加速度传感器应用案例

系列文章目录 1. stm32之I2C通信协议 文章目录 系列文章目录前言一、电路接线图二、应用案例代码三、应用案例分析3.1 I2C通信模块3.2 MPU6050模块 前言 提示:本文主要用作在学习江科大自化协STM32入门教程后做的归纳总结笔记,旨在学习记录&#xff0c…

空间计量 | 空间杜宾误差模型SDEM

空间计量研究中,空间杜宾误差模型,其考虑两项,分别是自变量X的空间滞后作用,以及误差扰动项的空间滞后作用,其数学模型公式如下: y βk * x θk * Wx u, u λ * Wu (其中βk表示X的回归系…

AI学习记录 - 线性代数(3Blue1Brown)

一天更新一点点,只更新重点内容,一句话定义,简单的定义,避免脑子及记太多 向量的加法就是一种趋势运动 向量的延长缩短,就是分量的延长缩短 基向量就是在平面或者任意维度空间随便定义的一个向量 多个基向量的组合可…

每天分享一个FPGA开源代码(1)- spi

1、SPI总线进行通信的结构 SPI总线主要包括四根关键信号线: (1)SCK (Serial Clock) 串行时钟线,由主设备产生,控制数据传输的速率和时机。 (2)MOSI (Master Out Slave In) 主设备数据输出线…

指针的一些细节补充———C语言

野指针: 1.未初始化的指针: eg: int *p; // 未初始化的指针 *p 5; // 未定义行为,p 是野指针 ————————————————————————————————————————————————————————…