MySQL数据库详解 五:用户管理

2023-09-20 15:03:33

1. 数据库的用户管理

1.1 新建用户

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

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

在这里插入图片描述

use mysql
select user,host,authentication_string from user;

select user,host,authentication_string from mysql.user;
#查看当前所有用户信息

在这里插入图片描述

create user 'aaa'@'%' identified by '123456';
#创建名为aaa的用户并可以使用任意地址登录

create user 'aaa'@'192.168.67.101' identified by '123456';
#创建名为aaa的用户并只能使用192.168.67.101地址登录

create user 'aaa'@'192.168.67.0/24' identified by '123456';
#创建名为aaa的用户并只能使用192.168.67.0网段地址登录

create user 'aaa'@'localhost' identified by '123456';
#创建名为aaa的用户并只能使用本机地址登录

1.2 重命名用户

rename user '旧用户名'@'源地址' to '新用户名'@'源地址';

#示例
rename user 'aaa'@'192.168.67.101' to 'bbb'@'192.168.67.0/24';

在这里插入图片描述

1.3 删除用户

drop user '用户名'@'源地址';

#示例
drop user 'bbb'@'192.168.67.0/24';

在这里插入图片描述

1.4 修改用户密码

set password = password('密码');                
#修改当前用户密码

set password for '用户名'@'源地址' = password('密码');alter user '用户名'@'源地址' identified by '密码';
#修改目标用户密码

1.5 忘记用户密码的解决方法

#方式一
1. 修改mysql配置文件,在 [mysqld] 下面添加 skip-grant-tables 配置项
2. 重启mysqld服务,使用 mysql 密码直接登录 mysql
3. 执行 update user set authentication_string=password('密码') where user='root'; 命令修改 root 用户的密码
4. 还原mysql配置文件,重启mysqld服务,使用 mysql -u 用户名 -p密码 [-h mysql地址 -P mysql端口] 命令来验证登录
#方式二
#使用 update 修改 root 密码,刷新数据库
update mysql.user set authentication_string = passwd('abc123') where user='root';

FLUSH PRIVILEGES;
quit

mysql -u root -pabc123

注意:最后再把 /etc/my.cnf 配置文件里的 skip-grant-tables 删除,并重启 mysql 服务。

1.6 数据库用户授权

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

当指定的用户名不存在时,grant语句将会创建新的用户;
当指定的用户名存在时, grant 语句用于修改用户信息。

1.6.1 授权用户权限类别

all privilege 权限如下

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

1.6.2 添加权限

grant 权限列表 on 数据库名.表名 to '用户名'@'来源地址' [identified by '密码'];
#示例
grant insert,update,select on scj.* to 'aaa'@'192.168.67.101';
#为用户aaa添加为scj库下所有表插入数据、更新表数据、查看表数据的权限
flush privileges;
#刷新权限使其立即生效

show grants for 用户名@来源地址;        #查看用户权限

show grants for 'aaa'@'192.168.67.101';
#查看aaa用户所有的权限

在这里插入图片描述

1.6.2 撤销权限

revoke 权限列表 on 数据库名.表名 from 用户名@来源地址;
#示例
revoke all on *.* from 'aaa'@'192.168.67.101';
#撤销aaa用户所有的权限

revoke select on *.* from 'aaa'@'192.168.67.101';
#撤销aaa用户的查看权限

flush privileges;
#刷新权限使其立即生效

2. mysql命令

mysql [OPTIONS] [database]
命令格式

-A, --no-auto-rehash 禁止补全
-u, --user= 用户名,默认为root
-h, --host= 服务器主机,默认为localhost
-p, --passowrd= 用户密码,建议使用-p,默认为空密码
-P, --port= 服务器端口
-S, --socket= 指定连接socket文件路径
-D, --database= 指定默认数据库
-C, --compress 启用压缩
-e   "SQL" 执行SQL命令
-V, --version 显示版本
-v  --verbose 显示详细信息
--print-defaults 获取程序默认使用的配置
mysql>use mysql           #切换数据库
mysql> select database(); #查看当前数据库
mysql>select user();      #查看当前用户
mysql>system clear        #清屏
mysql> ^DBye              #ctrl+d 退出
#mysqladmin命令

mysqladmin [OPTIONS] command command...

#查看mysql服务是否正常,如果正常提示mysqld is alive
mysqladmin -u用户 -p密码   ping
mysqladmin -uroot -p123123  ping

#关闭mysql服务,但mysqladmin命令无法开启
mysqladmin -uroot -pcentos shutdown

#创建数据库testdb
mysqladmin -uroot -pcentos   create testdb 

#删除数据库testdb
mysqladmin -uroot -pcentos   drop testdb

#修改root密码
mysqladmin -uroot -pAdmin@123 password ‘123'

#日志滚动,生成新文件/var/lib/mysql/mariadb-bin.00000N
mysqladmin -uroot -pcentos flush-logs
更多推荐

【uniapp】Dcloud的uni手机号一键登录,具体实现及踩过的坑,调用uniCloud.getPhoneNumber(),uni.login()等

一键登录Dcloud官网请戳这里,感兴趣的可以看看官网,有很详细的示例,选择App一键登录,可以看到一些常用的概述比如:1、调用uni.login就能弹出一键登录的页面2、一键登录的流程,可以选择先预登录uni.prelogin()或直接登录uni.login()3、要先开通Dcloud一键登录服务,在Dcloud开发

基于5G网络的智能车间MES设计方案

导读在数字化转型建设过程中,机械制造企业的难点是智能车间的设计。随着5G技术的发展,大量的带网络接口的智能设备的投入使用,智能车间的实施成为可能。本文从车间生产计划调度、过程管控、设备管理、质量管理、能耗管理和物流仓储等方面提出了车间MES执行系统设计的要求,同时对企业实施MES的过程提出了四个注意事项。01引言随着网

详解SpringBoot的核心特性

详解SpringBoot的核心特性SpringBoot是一个用于简化Spring应用程序开发的框架,它提供了一系列核心特性,使得开发者能够更快速、更简单地构建和部署Spring应用程序。本文将详细介绍SpringBoot的五个核心特性,并为每个特性提供三个子特性的详细解释。1.独立运行的Spring应用程序Spring

在SpringBoot中如何整合消息服务组件?

在开发中,消息服务组件在系统架构中扮演着举足轻重的角色。本文将介绍消息服务组件的基本概念,以及如何在SpringBoot中整合常见的消息服务组件,如ActiveMQ、RabbitMQ和Kafka。最后,我们将探讨整合消息服务组件在实际应用场景中的优势。1.消息服务组件的基本概念1.1什么是消息服务组件消息服务组件作为一

Spring Boot 有哪些特点?

目录一、自动配置二、嵌入式TomcatWeb服务器三、入门POM四、Actuator执行器API五、SpringBoot初始化器一、自动配置SpringBoot的自动配置是SpringBoot框架提供的一种功能,它可以根据用程序的依赖和配置信息,自动配置一些常见的功能模块。这样,开发人员可以快速构建和部署应用程序,而无

在虚拟机上安装win10/ubuntu的教程

以下内容源于网络资源的学习与整理,如有侵权请告知删除。一、资源下载(1)下载虚拟机Vmware_Pro17:网盘链接(2)下载操作系统镜像:MSDN,我告诉你-做一个安静的工具站或者从网盘下载:win10镜像(囧,没会员不能上传),ubuntu20镜像。二、在虚拟机上安装ubuntu系统1、打开虚拟机,选择文件>>新建

电商平台淘宝、京东、1688等,它们都提供了相应的API数据接口供开发者使用

获取商品数据已经成为许多应用程序的重要组成部分。为了实现这一目标,许多公司和技术开发者使用API数据接口来获取相关数据。本文将详细介绍如何使用API数据接口获取商品数据,并使用Python作为编程语言示例来展示相关代码。API数据接口是一种通信协议,它允许不同的应用程序或服务之间进行数据交换。这些接口通常是由各种平台、

数据结构之美:如何优化内存和性能

文章目录什么是数据结构?内存优化使用紧凑的数据类型避免冗余存储使用位运算压缩数据性能优化使用适当的数据结构减少不必要的复制使用合适的算法数据结构优化的案例分析结论🎉欢迎来到数据结构学习专栏~探索数据结构之美:如何优化内存和性能☆*o(≧▽≦)o*☆嗨~我是IT·陈寒🍹✨博客主页:IT·陈寒的博客🎈该系列文章专栏:

阿里云ACP认证备考指南,赶紧收藏!

新技术更新迭代,后浪追逐,前浪内卷。唯有硬技能才能助你在职场乘风破浪。作为技术人,该如何有效的提高职场竞争力呢?而证书是一种能非常有效证明自己能力的东西,不仅能够提高简历通过率,为你的面试加分,还可以为你的升职加薪提高筹码,通过考证去提升自己,真的是一种性价比很高的方式。阿里云ACP认证专业工程师考试是当前比较热门的一

(WRF/Chem)在大气环境领域实践技术应用

随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因素是控制大气污染的关键自然因素。大气污染问题既是局部、当地的,也是区域的,甚至是全球的。本地的污染物排放

百度ERNIE 3.0——中文情感分析实战

目录前言一、百度ERNIE3.0二、使用ERNIE3.0中文预训练模型进行句子级别的情感分析2-1、环境2-2、数据集加载2-3、加载预训练模型和分词器2-4、基于预训练模型的数据处理2-5、数据训练和评估2-6、模型验证2-7、情感分析结果的预测以及保存三、自定义个人案例3-1、如何自定义数据集总结前言ERNIE(E

热文推荐