MySQL数据库 详谈用户管理

MySQL用户管理 如果我们只能使用root用户,这样存在安全隐患。这时,就需要使用MySQL的用户管理。MySQL中的用户,都存储在系统数据库mysql的user表中。刚创建的用户没有任何权限。root用户修改指定用户的密码。 阅读详情

目录

1. 用户

1.1 用户信息

1.2 创建用户

1.3 删除用户

1.4 修改用户密码

2. 数据库的权限

2.1 给用户授权

2.2 回收权限


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

1. 用户

1.1 用户信息

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

mysql> use mysql;
Database changed
mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
--可以通过desc user初步查看一下表结构

字段解释:

host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆

user: 用户名

authentication_string: 用户密码通过password函数加密后的

*_priv: 用户拥有的权限

1.2 创建用户

语法:

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

案例:

mysql> create user 'whb'@'localhost' identified by '12345678';
Query OK, 0 rows affected (0.06 sec)
mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user | host | authentication_string |
+---------------+-----------+-------------------------------------------+
| root | % | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| whb | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 | --新增用
户
+---------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)
-- 此时便可以使用新账号新密码进行登陆啦
--备注:可能实际在设置密码的时候,因为mysql本身的认证等级比较高,一些简单的密码无法设置,会爆出如下报错:
-- ERROR 1819 (HY000): Your password does not satisfy the current policy  requirements
-- 解决方案:https://blog.youkuaiyun.com/zhanaolu4821/article/details/93622812
--查看密码设置相关要求:SHOW VARIABLES LIKE 'validate_password%';
-- 这个大家下来自己玩玩
--关于新增用户这里,需要大家注意,不要轻易添加一个可以从任意地方登陆的user

1.3 删除用户

语法:

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

示例:

mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user | host | authentication_string |
+---------------+-----------+-------------------------------------------+
| root | % | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| whb | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
+---------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql> drop user whb; --尝试删除
ERROR 1396 (HY000): Operation DROP USER failed for 'whb'@'%' -- <= 直接给个用户名,不能删除,它默认是%,表示所有地方可以登陆的用户
mysql> drop user 'whb'@'localhost'; --删除用户
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user | host | authentication_string |
+---------------+-----------+-------------------------------------------+
| root | % | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

1.4 修改用户密码

语法:

自己改自己密码

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

root用户修改指定用户的密码

set password for '用户名'@'主机名'=password('新的密码');
mysql> select host,user, authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| % | root | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | whb | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 |
+-----------+---------------+-------------------------------------------+
4 rows in set (0.00 sec)
mysql> set password for 'whb'@'localhost'=password('87654321');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select host,user, authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| % | root | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | whb | *5D24C4D94238E65A6407DFAB95AA4EA97CA2B199 |
+-----------+---------------+-------------------------------------------+
4 rows in set (0.00 sec)

2. 数据库的权限

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

2.1 给用户授权

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

语法:

grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']

说明:

权限列表,多个权限用逗号分开

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

*.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)

库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)

identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

案例:

--使用root账号
--终端A
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 57test |
| bit_index |
| ccdata_pro |
| innodb_test |
| musicserver |
| myisam_test |
| mysql |
| order_sys |
| performance_schema |
| scott |
| sys |
| test |
| vod_system |
+--------------------+
14 rows in set (0.00 sec)
mysql> use test;
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| account |
| student |
| user |
+----------------+
3 rows in set (0.01 sec)
--给用户yzk赋予test数据库下所有文件的select权限
mysql> grant select on test.* to 'yzk'@'localhost';
Query OK, 0 rows affected (0.01 sec)
--使用yzk账号
--终端B
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
--暂停等root用户给yzk赋完权之后,在查看
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test | --赋完权之后,就能看到新的表
+--------------------+
2 rows in set (0.01 sec)
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| account |
| student |
| user |
+----------------+
3 rows in set (0.00 sec)
mysql> select * from account;
+----+--------+---------+
| id | name | blance |
+----+--------+---------+
| 2 | 李四 | 321.00 |
| 3 | 王五 | 5432.00 |
| 4 | 赵六 | 543.90 |
| 5 | 赵六 | 543.90 |
+----+--------+---------+
4 rows in set (0.00 sec)
--没有删除权限
mysql> delete from account;
ERROR 1142 (42000): DELETE command denied to user 'yzk'@'localhost' for table
'account'
备注:特定用户现有查看权限
mysql> show grants for 'yzk'@'%';
+-----------------------------------------------+
| Grants for yzk@% |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'yzk'@'%' |
| GRANT ALL PRIVILEGES ON `test`.* TO 'yzk'@'%' |
+-----------------------------------------------+
2 rows in set (0.00 sec)
mysql> show grants for 'root'@'%';
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
注意:如果发现赋权限后,没有生效,执行如下指令:
flush privileges;

2.2 回收权限

语法:

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

示例:

-- 回收yzk对test数据库的所有权限
--root身份,终端A
mysql> revoke all on test.* from 'yzk'@'localhost';
Query OK, 0 rows affected (0.00 sec)
--yzk身份,终端B
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

MySQL 数据库-用户管理详解 今天给伙伴们分享一下MySQL数据库-日志管理,希望看了有所收获。 阅读详情

相关推荐

Java基于vue的数据管理系统(源码+mysql+文档)

首先,Vue作为一种流行的前端框架,具有良好的用户界面设计和交互体验,能够提供直观、友好的操作界面,降低用户的学习成本和使用门槛。其次,Vue具有响应式的特性,能够根据用户的操作实时更新数据,提高系统的响应速度和用户体验。最后,基于Vue的数据管理系统还可以结合后端的数据库技术,实现数据的存储和管理,提供强大的数据处理和分析功能,为企业的决策提供有力的支持。因此,开发一款基于Vue的数据管理系统,能够提供简单易用的用户界面和高效的数据处理能力,对于提升企业的数据分析效率和决策能力具有重要意义。

十甘程序设计 1200

MySQL 用户管理

MySQL DCL

原来45的博客 3374

MYSQL-创建数据库 CREATE DATABASE (十一)

MYSQL创建数据库语法 CREATE DATABASE

口袋里的小龙的专栏 1403

mysql.sys用户权限_MySQL用户及权限小结

备注:测试数据库版本为MySQL 8.0这个blog我们来聊聊MySQL用户及权限一.MySQL用户和权限介绍MySQL权限系统通过下面两个阶段进行认证:1.对连接的用户进行身份认证,合法的用户通过验证,不合法的用户拒绝连接查看mysql.user表的Host、User、备注:MySQL 进行身份认证的时候,IP地址和用户名联合进行确认,所以root@localhost 和root@ip 会被My...

weixin_28797919的博客 3206

mysql数据库配置文件db.properties

datasource.connection.driver_class=com.mysql.jdbc.Driver datasource.connection.url=jdbc:mysql://localhost:3306/db_online_exam?useUnicode=true&characterEncoding=utf-8 datasource.connection.username...

welei的博客 1676

修改 MySQL 中 SYS 用户密码的方法

在 MySQL 数据库中,SYS 用户是一个特殊的用户,它具有超级管理员的权限。如果你需要修改 SYS 用户的密码,可以按照以下步骤进行操作。SYS 用户通常存储在一个名为 “mysql” 的系统数据库中。使用具有管理员权限的账号登录到 MySQL 服务器。注意:在 MySQL 5.7 之后的版本中,密码字段名已经从。执行以下命令来修改 SYS 用户的密码。现在,你已经成功修改了 SYS 用户的密码。步骤 2:选择 SYS 用户所在的数据库。步骤 3:修改 SYS 用户密码。步骤 5:退出 MySQL。

MbfrDeveloper的博客 671

数据库课程设计mysql——个人博客数据管理系统

本篇是我大二数据库课程的结课作业,想分享给大家,文中理解有误的地方,请多多指正~ 文章目录需求分析概念结构设计抽象出系统的实体2.2 设计E-R图全局E-R图逻辑结构设计数据库物理设计与实施创建数据库建立和管理基本表建立基本表与管理基本表插入数据建立和管理视图建立视图管理视图访问数据库数据查询数据更新数据库维护备份数据库创建触发器总结与心得 需求分析 随着互联网的发展,越来越多的人拥有了自己的个人博客。但是大多数采用的是网上别人做好的博客模板,众所周知,网上的模板并不是单独为个人而定制,而是面向大多数人

2302_77250325的博客 8733

MySQL运维之系统库sys

🐬数据库版本:MySQL 8.0.30。

Sebastien23的博客 900

SSM用户行程数据管理系统-计算机毕业设计源码61552

摘要 随着人们出行需求增加,对行程数据的管理和记录需求也日益增长。本研究旨在设计并实现了一套用户行程数据管理系统。该系统旨在满足用户对行程管理的需求,提供了丰富的功能如首页、公告信息、新闻资讯、导航地图、个人中心、行程记录等,并包含管理员功能如主页、公共管理、用户管理、新闻资讯管理、行程记录管理等。 在技术方面,系统利用Java作为开发语言,SSM框架实现系统的快速开发和灵活扩展,Mysql数据库用于数据存储和管理。通过该系统,用户可以方便记录和管理行程信息,管理员可以高效管理系统内容和用户信息......

CXKF10088的博客 1593

Vue2项目实战:vue2-org-tree实现动态组织架构图

本文详细介绍了如何在Vue2项目中使用vue2-org-tree组件实现动态、可交互的组织架构图。内容涵盖从快速安装、基础渲染到核心功能实战,包括水平布局、节点展开折叠、响应式数据绑定、深度自定义节点内容以及事件处理。同时提供了性能优化、样式覆盖等避坑指南,并通过一个完整的企业级Demo展示了如何打造功能丰富的架构图,助力高效开发后台管理系统。

weixin_28040125的博客 522

博图HMI多语言文本列表一键生成攻略:从Excel模板到TIA Portal的完整流程

本文详细介绍了如何利用Excel模板和TIA Portal API实现博图HMI多语言文本列表的一键生成。通过标准化Excel模板设计、解析TIA Portal的XML结构,并结合C#代码实现自动化导入,大幅提升多语言项目的开发效率。特别适用于需要支持多语言版本的自动化设备HMI界面开发。

weixin_26934905的博客 218

【Mysql】如何轻松管理用户和数据库

【Mysql】如何轻松管理用户和数据库,使用命令行在mysql中创建数据库和用户

代码说,代码让世界更美好。 1643

Unreal5(虚幻五) 实现UI与C++代码逻辑的交互 保姆级教程

本人有Unity基础,刚学UE几天,把这一套处理流程记录一下备用。

qq_42915442的博客 9815

SSM用户行程数据管理系统-计算机毕业源码61552

摘要 随着人们出行需求增加,对行程数据的管理和记录需求也日益增长。本研究旨在设计并实现了一套用户行程数据管理系统。该系统旨在满足用户对行程管理的需求,提供了丰富的功能如首页、公告信息、新闻资讯、导航地图、个人中心、行程记录等,并包含管理员功能如主页、公共管理、用户管理、新闻资讯管理、行程记录管理等。 在技术方面,系统利用Java作为开发语言,SSM框架实现系统的快速开发和灵活扩展,Mysql数据库用于数据存储和管理。通过该系统,用户可以方便记录和管理行程信息,管理员可以高效管理系统内容和用户信息......

vx2_Biye_Design的博客 1486

SAP WM模块配置详解

1.给工厂/存储地点分配仓库编码 功能说明 配置路径 IMG>企业结构>分配>分配后勤执行>给工厂/存储地点分配仓库编码 业务示例 配置步骤 2.定义仓库号码控制参数 功能说明 配置路径 IMG>后勤执行>仓库管理>主数据>主数据>定义仓库号码控制参数 业务示例 配置步骤 3.定义编码范围 功能说明 配置路径 IMG>后勤执行>仓库...

weixin_40672823的博客 2万+

AI智能体在零售行业的5大变革性应用

本文旨在全面介绍AI智能体在零售行业的关键应用场景,分析其技术原理和商业价值,帮助读者理解这些技术如何改变传统零售模式。文章将从核心概念入手,逐步深入五大应用场景的技术实现,最后探讨未来趋势和挑战。AI智能体:能够感知环境、做出决策并执行行动的智能软件实体机器学习:让计算机从数据中学习模式而无需显式编程的技术深度学习:基于神经网络的机器学习方法,能够处理复杂模式识别核心概念回顾AI智能体是零售数字化转型的关键驱动力从推荐系统到库存管理,AI正在重塑每个零售环节。

AI 原生应用开发的博客 1350

mysql数据库用户及用户权限管理

1、mysql数据库的权限 (1)mysql数据库用户权限级别          1)全局性管理权限:作用于整个mysql实例级别          2)数据库级别:作用于指定的某个数据库上或者所有数据库上          3)数据库对象级别权限:作用于指定的数据库对象上(表或者视图) (2)mysql数据库用户权限 权限名称 权限说明 ...

dayi_123的博客 3万+

【LLC快速上手系列】LLC轻载时:开关频率 + 死区时间 联合优化!

轻载优化,频率别飞天,死区要有耐心。两手一起抓,效率高到笑。😎。

weixin_43199439的博客 1182

【MySQL 数据库】MySQL用户管理

MySQL用户管理是数据库安全的重要环节,通过创建不同权限的用户可有效降低root账户风险。文章详细介绍了用户管理操作: 用户创建:使用CREATE USER命令创建指定主机名和密码的用户,用户信息存储在mysql.user表中; 密码修改:推荐使用ALTER USER语句(MySQL 8.0+),废弃旧版PASSWORD()函数; 权限管理:通过GRANT命令分配特定数据库对象的操作权限; 用户删除:使用DROP USER命令删除用户。 文章还提供了常用权限列表和具体操作示例,包括创建用户、修改密码和分配

a_sen的博客 976

黑猫带你学eMMC协议第17篇:超详细的eMMC HS200 & HS400讲解

1 前言 1.1 声明 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 本文大约6000字,主要内容有: 1.什么是emmc hs200/hs400? 2.什么是tuning?tuning的过程又是什么? 3.如何设置才能让emmc进入hs200 mode? 4.如何设置才能让emmc进入hs400 mode? 5.emmc关于HS200/HS400内部结构框图对比。 6.部分个人相关经验总结。

黑猫奥利奥的博客 1万+

Windows11 - Ubuntu 双系统及 ROS、ROS2 安装

在本教程中,我们将使用 Ubuntu 20.04 版本,该版本使用了新的 Ubuntu 桌面安装程序,该程序将包含在今后发布的所有 Ubuntu 版本中。如果你选择了这个选项,你会看到一个简单的界面,允许你选择要安装Ubuntu的硬盘,并通过滑块来决定你希望Ubuntu使用的磁盘空间大小。如果你的电脑有多个硬盘驱动器,那么只要它们各自有自己的驱动器,这个选项就能让你在安装 Ubuntu 的同时安装现有的操作系统。在此屏幕上,系统会提示您输入您的姓名和您的计算机名称,以显示在网络上。

机器人控制与仿真应用 4507

mysql 用户管理-权限表

权限表,进入mysql数据库,看表结构,用DESC,比如: desc user; 看用户表的表结构。用户表平时感觉会比其他的多一些,看有哪些用户;其次是权限表tables_priv。

一路向前 2906

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

达梦数据库的Schema和 MySQL 的 Database

总的来说,你可以这样理解:当你想实现"一应用一用户,其数据自成一体"时,达梦的用户及其默认模式与 MySQL 的Database在逻辑上很相似。当你想实现"一个应用下,多个逻辑模块共享一个数据库连接,但又需要数据隔离"时,达梦的单用户多模式特性提供了MySQL的Database所不具备的灵活性。

m0_59021776的博客 1224

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

MySQL数据库用户管理

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 ......

weixin_67510296的博客 1298

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: MySQL数据库 详谈索引(二)
下一篇: Linux 详谈Ext系列⽂件系统(一)
万我.
博客等级 码龄1年 460粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值