当前位置: 首页 > news >正文

数据库用户管理

数据库用户管理

1.创建用户

MySQL在安装是,会默认创建一个名位root的用户,该用户拥有超级权限,可以控制整个MySQL服务器。

在对MySQL的日常管理和操作中,通常创建一些具有适当权限的用户,尽可能的不用或少用root登录系统,以此来确保数据的安全访问。

可以使用create use语句创建用户,并设置相应密码:

create user 用户 [indentified by [password] 'password']

参数说明:

  1. 用户

指定创建用户账号,格式为 user_name’@'host_name。这里的user_name是用户名,host_name为主机名,即用户连接 MySQL 时所用主机的名字。如果在创建的过程中,只给出了用户名,而没

指定主机名,那么主机名默认为“%”,表示一组主机,即对所有主机开放权限。

  1. IDENTIFIED BY子句

用于指定用户密码。新用户可以没有初始密码,若该用户不设密码,可省略此子句。

  1. PASSWORD ‘password’

PASSWORD 表示使用哈希值设置密码,该参数可选。如果密码是一个普通的字符串,则不需要使用 PASSWORD 关键字。‘password’ 表示用户登录时使用的密码,需要用单引号括起来。

⚠️使用 CREATE USER 语句时应注意以下几点:

  • CREATE USER 语句可以不指定初始密码。但是从安全的角度来说,不推荐这种做法。

  • 使用 CREATE USER 语句必须拥有 mysql 数据库的 INSERT 权限或全局 CREATE USER 权限。

  • 使用 CREATE USER 语句创建一个用户后,MySQL 会在 mysql 数据库的 user 表中添加一条新记录。

  • CREATE USER 语句可以同时创建多个用户,多个用户用逗号隔开。

新创建的用户拥有的权限很少,它们只能执行不需要权限的操作。如登录 MySQL、使用 SHOW 语句查询所有存储引擎和字符集的列表等。如果两个用户的用户名相同,但主机名不同,MySQL 会将它们视为两个用户,并允许为这两个用户分配不同的权限集合。

案例1:

创建一个用户,用户名是test1,密码是test1,主机名是localhost。


mysql> create user 'test1'@'locahost' identified by 'test1';
Query OK, 0 rows affected (0.01 sec)mysql> select user ,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| test1             | locahost  |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)C:\Users\k>mysql -utest1 -p
Enter password: *****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.4.3 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
2 rows in set (0.01 sec)

2.用户修改

可以使用rename user语句修改一个或多个已经存在的用户账号。

rename user 旧用户 to 新用户

<旧用户>:系统中已经存在的 MySQL 用户账号。

<新用户>:新的 MySQL 用户账号。

使用 RENAME USER 语句时应注意以下几点:

  • RENAME USER 语句用于对原有的 MySQL 用户进行重命名。

  • 若系统中旧账户不存在或者新账户已存在,该语句执行时会出现错误。

  • 使用 RENAME USER 语句,必须拥有 mysql 数据库的 UPDATE 权限或全局 CREATE USER 权限。

案例:

将用户test1修改为testuser1,主机是locahost


mysql> RENAME USER 'test1'@'localhost' TO 'testuser1'@'localhost';
Query OK, 0 rows affected (0.01 sec)mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
| testuser1        | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)C:\Users\kittod>mysql -utestUser1 -p
Enter password: *****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.4.3 MySQL Community Server - GPL
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement

3.用户授权

可以通过mysql.user表中的数据记录来查看相应的用户权限,也可以使用show grants语句来查询用户的权限。

mysql数据库下的user表中存储这用户的基本权限,也可以使用select语句来查看。

select * from mysql.user;

要执行该语句,就必须拥有对user表的查询权限。

⚠️新创建的用户只有登录mysql服务器的权限,没有任何其他权限,不能查询user表。

除了使用select语句之外,还可以使用show grants for语句查看权限:

show grants for 'username'@'hostname';

案例1:


mysql> show grants for 'testuser1'@'localhost';
+-----------------------------------------------+
| Grants for testuser1@localhost                |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO `testuser1`@`localhost` |
+-----------------------------------------------+
1 row in set (0.00 sec)

其中,USAGE ON *.*表示该用户对任何数据库和任何表都没有权限。

授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL提供了 GRANT 语句来为用户设置权限。

案例2:


mysql> grant all on test.* to 'testuser1'@'localhost';
Query OK, 0 rows affected (0.01 sec)mysql> show grants for 'testuser1'@'localhost';
+-------------------------------------------------------------+
| Grants for testuser1@localhost                              |
+-------------------------------------------------------------+
| GRANT USAGE ON *.* TO `testuser1`@`localhost`               |
| GRANT ALL PRIVILEGES ON `test`.* TO `testuser1`@`localhost` |
+-------------------------------------------------------------+
2 rows in set (0.00 sec)# 使用用户 testUser1
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| performance_schema |
| test |
+--------------------+
3 rows in set (0.00 sec)
mysql> use test;
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| dept |
| emp |
| like_tb_emp1 |
| myview |
| salgrade |
| tb_dept1 |
| tb_dept2 |
| tb_dept3 |
| tb_dept4 |
| tb_emp1 |
| tb_emp4 |
| tb_emp5 |
| tb_emp6 |
+----------------+
13 rows in set (0.00 sec)

案例3:

mysql> revoke all on test.* from 'testuser1'@'localhost';
Query OK, 0 rows affected (0.01 sec)mysql> show grants for 'testuser1'@'localhost';
+-----------------------------------------------+
| Grants for testuser1@localhost                |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO `testuser1`@`localhost` |
+-----------------------------------------------+
1 row in set (0.00 sec)### 使用用户 testUser1
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
2 rows in set (0.00 sec)

4.删除用户

使用drop use语句来删除用户,也可以直接在mysql.user表中删除用户以及相关权限。

drop user 用户

其中,用户用来指定需要删除的用户账号。

案例:


mysql> drop user 'testuser1'@'localhost';
Query OK, 0 rows affected (0.01 sec)mysql> show grants for 'testuser1'@'localhost';
ERROR 1141 (42000): There is no such grant defined for user 'testuser1' on host 'localhost'

相关文章:

数据库用户管理

数据库用户管理 1.创建用户 MySQL在安装是&#xff0c;会默认创建一个名位root的用户&#xff0c;该用户拥有超级权限&#xff0c;可以控制整个MySQL服务器。 在对MySQL的日常管理和操作中&#xff0c;通常创建一些具有适当权限的用户&#xff0c;尽可能的不用或少用root登录…...

BGP边界网关协议(Border Gateway Protocol)路由聚合详解

一、路由聚合 1、意义 在大规模的网络中&#xff0c;BGP路由表十分庞大&#xff0c;给设备造成了很大的负担&#xff0c;同时使发生路由振荡的几率也大大增加&#xff0c;影响网络的稳定性。 路由聚合是将多条路由合并的机制&#xff0c;它通过只向对等体发送聚合后的路由而…...

ASP.NET Core WebAPI的异步及返回值

目录 Action方法的异步 Action方法参数 捕捉URL占位符 捕捉QueryString的值 JSON报文体 其他方式 Action方法的异步 Action方法既可以同步也可以异步。异步Action方法的名字一般不需要以Async结尾。Web API中Action方法的返回值如果是普通数据类型&#xff0c;那么返回值…...

「 机器人 」仿生扑翼飞行器中的“被动旋转机制”概述

前言 在仿生扑翼飞行器的机翼设计中,模仿昆虫翼的被动旋转机制是一项关键技术。其核心思想在于:机翼旋转角度(攻角)并非完全通过主动伺服来控制,而是利用空气动力和惯性力的作用,自然地实现被动调节。以下对这种设计的背景、原理与优势进行详细说明。 1. 背景:昆虫的被动…...

「 机器人 」扑翼飞行器的数据驱动建模核心方法

前言 数据驱动建模可充分利用扑翼飞行器的已有运行数据,改进动力学模型与控制策略,并对未建模动态做出更精确的预测。在复杂的非线性飞行环境中,该方法能有效弥补传统解析建模的不足,具有较高的研究与应用价值。以下针对主要研究方向和实现步骤进行整理与阐述。 1. 数据驱动…...

个人网站搭建

搭建 LNMP环境搭建&#xff1a; LNMP环境指&#xff1a;Linux Nginx MySQL/MariaDB PHP&#xff0c;在debian上安装整体需要300MB的磁盘空间。MariaDB 是 MySQL 的一个分支&#xff0c;由 MySQL 的原开发者维护&#xff0c;通常在性能和优化上有所改进。由于其轻量化和与M…...

飞书项目流程入门指导手册

飞书项目流程入门指导手册 参考资料准备工作新建空间国际化配置新建工作项字段管理新建字段对接标识授权角色 流程管理基础说明流程节点配置流程节点的布局配置页面上布局按钮布局配置 流程节点驳回流程图展示自动化字段修改 局限性 参考资料 飞书官方参考文档&#xff1a;飞书…...

xss靶场

xss-labs下载地址&#xff1a;GitHub - do0dl3/xss-labs: xss 跨站漏洞平台 xss常见触发标签&#xff1a;XSS跨站脚本攻击实例与防御策略-CSDN博客 level-1 首先查看网页的源代码发现get传参的name的值test插入了html里头&#xff0c;还回显了payload的长度。 <!DOCTYPE …...

XML实体注入漏洞攻与防

JAVA中的XXE攻防 回显型 无回显型 cve-2014-3574...

switch组件的功能与用法

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了PageView这个Widget,本章回中将介绍Switch Widget.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的Switch是指左右滑动的开关&#xff0c;常用来表示某项设置是打开还是关闭。Fl…...

cursor重构谷粒商城05——docker容器化技术快速入门【番外篇】

前言&#xff1a;这个系列将使用最前沿的cursor作为辅助编程工具&#xff0c;来快速开发一些基础的编程项目。目的是为了在真实项目中&#xff0c;帮助初级程序员快速进阶&#xff0c;以最快的速度&#xff0c;效率&#xff0c;快速进阶到中高阶程序员。 本项目将基于谷粒商城…...

高等数学学习笔记 ☞ 微分方程

1. 微分方程的基本概念 1. 微分方程的基本概念&#xff1a; &#xff08;1&#xff09;微分方程&#xff1a;含有未知函数及其导数或微分的方程。 举例说明微分方程&#xff1a;&#xff1b;。 &#xff08;2&#xff09;微分方程的阶&#xff1a;指微分方程中未知函数的导数…...

【探索 Kali Linux】渗透测试与网络安全的终极操作系统

探索 Kali Linux&#xff1a;渗透测试与网络安全的终极操作系统 在网络安全领域&#xff0c;Kali Linux 无疑是最受欢迎的操作系统之一。无论是专业的渗透测试人员、安全研究人员&#xff0c;还是对网络安全感兴趣的初学者&#xff0c;Kali Linux 都提供了强大的工具和灵活的环…...

四方连续贴图是什么意思

上下左右四个方向都是连续的图案&#xff0c;是由一个纹样或几个纹样组成一个单位&#xff0c;向四周重复地连续和延伸扩展而成的图案形式...

RKNN_C++版本-YOLOV5

1.背景 为了实现低延时&#xff0c;所以开始看看C版本的rknn的使用&#xff0c;确实有不足的地方&#xff0c;请指正&#xff08;代码借鉴了rk官方的仓库文件&#xff09;。 2.基本的操作流程 1.读取模型初始化 // 设置基本信息 // 在postprocess.h文件中定义&#xff0c;详见…...

k8s优雅重启

理论上处于terminating状态的pod&#xff0c;k8s 就会把它从service中移除了&#xff0c;只用配置一个优雅停机时长就行了。kubectl get endpoints 验证 因此&#xff0c;优雅重新的核心问题&#xff0c;是怎么让空闲长连接关闭&#xff0c;再等待处理中的请求执行完。 一些底…...

三高“高性能、高并发、高可靠”系统架构设计系列文章

目录 高并发系统的艺术&#xff1a;如何在流量洪峰中游刃有余 《数据密集型应用系统设计》读后感与高并发高性能实践案例 系统稳定性与高可用保障的几种思路 软件系统限流的底层原理解析 技术解决方案调研 延迟队列调研 重试调研 异步回调调研 分库分表调研 分布式事…...

opengrok_使用技巧

Searchhttps://xrefandroid.com/android-15.0.0_r1/https://xrefandroid.com/android-15.0.0_r1/ 选择搜索的目录&#xff08;工程&#xff09; 手动在下拉框中选择&#xff0c;或者 使用下面三个快捷按钮进行选择或者取消选择。 输入搜索的条件 搜索域说明 域 fullSearc…...

C++资料

InterviewGuide 首页 - 八股精 Releases halfrost/LeetCode-Go GitHub GitHub - GrindGold/CppGuide: 「C/C学习面试指南」一份涵盖大部分 C 程序员所需要掌握的知识。入门、进阶、深入、校招、社招&#xff0c;准备 C 学习& 面试&#xff0c;首选 CppGuide&#xff0…...

基于模糊PID的孵化箱温度控制系统(论文+源码)

1系统方案设计 本课题为基于模糊PID的孵化箱温度控制系统&#xff0c;其以STM32最小系统与模糊PID控制器为控制核心。系统主要包括数据采集模块、处理器模块、电机控制模块。 数据采集模块由温度传感器构成&#xff0c;通过温度传感器感应温度变化&#xff0c;获得待处理的数据…...

LFM2.5-1.2B-Thinking-GGUF应用场景:智能硬件说明书问答机器人落地实践

LFM2.5-1.2B-Thinking-GGUF应用场景&#xff1a;智能硬件说明书问答机器人落地实践 1. 项目背景与需求 在智能硬件领域&#xff0c;产品说明书往往存在以下痛点&#xff1a; 内容专业术语多&#xff0c;普通用户难以理解纸质说明书查找信息效率低不同型号产品差异导致用户混…...

告别调参玄学:手把手教你用‘黎卡提方程’为自动驾驶LQR控制器选择Q和R矩阵

自动驾驶轨迹跟踪实战&#xff1a;从黎卡提方程到LQR调参的工程化思考 当你在仿真环境中第一次看到自己设计的LQR控制器让车辆完美跟踪参考轨迹时&#xff0c;那种成就感难以言喻。但更多时候&#xff0c;我们面对的是震荡的超调曲线、缓慢的收敛速度&#xff0c;以及令人抓狂的…...

Protege新手避坑指南:搞懂‘类’、‘属性’和‘推理’到底怎么用(附常见错误排查)

Protege新手避坑指南&#xff1a;搞懂‘类’、‘属性’和‘推理’到底怎么用&#xff08;附常见错误排查&#xff09; 第一次打开Protege时&#xff0c;满屏的术语和复杂的界面可能会让你感到不知所措。作为一款强大的本体编辑工具&#xff0c;Protege确实有着陡峭的学习曲线。…...

Matlab散点图进阶:如何用颜色、大小和形状搞定六维数据可视化(附完整代码)

Matlab散点图进阶&#xff1a;如何用颜色、大小和形状搞定六维数据可视化&#xff08;附完整代码&#xff09; 在数据分析领域&#xff0c;我们常常需要处理包含多个维度的复杂数据集。传统的二维或三维图表已经无法满足这类数据的可视化需求。本文将深入探讨如何利用Matlab的s…...

数据清洗避坑指南:缺失值和异常值处理的5个常见错误(附真实案例)

数据清洗避坑指南&#xff1a;缺失值和异常值处理的5个常见错误&#xff08;附真实案例&#xff09; 在电商平台的用户行为分析中&#xff0c;我们曾遇到一个诡异现象&#xff1a;某促销活动页面的转化率突然飙升到98%。进一步排查发现&#xff0c;是爬虫程序将未加载完成的页…...

零基础入门esp32开发:用快马平台生成第一个led控制程序详解

最近在学ESP32开发&#xff0c;发现对于新手来说&#xff0c;从零开始写代码还是挺有挑战的。不过我发现了一个超好用的工具——InsCode(快马)平台&#xff0c;它可以根据你的需求直接生成可运行的代码&#xff0c;特别适合像我这样的初学者。 项目需求分析 我想实现一个简单的…...

OpenAI Triton项目中的相关技术对比:多面体编译与调度语言

OpenAI Triton项目中的相关技术对比&#xff1a;多面体编译与调度语言 【免费下载链接】triton Development repository for the Triton language and compiler 项目地址: https://gitcode.com/GitHub_Trending/tri/triton 引言 在深度学习编译器领域&#xff0c;OpenA…...

ArduPilot电机控制逻辑与PWM输出机制剖析

1. ArduPilot电机控制基础概念 当你第一次接触无人机飞控时&#xff0c;最让人困惑的莫过于电机控制逻辑了。想象一下&#xff0c;你手里拿着遥控器&#xff0c;轻轻推动摇杆&#xff0c;无人机就能平稳地上升、下降或者转向。这背后到底发生了什么&#xff1f;让我用最直白的…...

Obsidian Local Images Plus 终极指南:如何一键解决所有本地图片管理难题

Obsidian Local Images Plus 终极指南&#xff1a;如何一键解决所有本地图片管理难题 【免费下载链接】obsidian-local-images-plus This repo is a reincarnation of obsidian-local-images plugin which main aim was downloading images in md notes to local storage. 项…...

TC3XX Autosar系统中文配置手册:包含19个模块的详细解析与联系指南

tc3xx autosar EB中文配置手册&#xff0c;需要联系。 一共有大约19个模块。 在汽车电子开发领域&#xff0c;TC3xx系列芯片AUTOSAR架构的组合越来越常见。最近研究EB&#xff08;Elektrobit&#xff09;配置工具时&#xff0c;发现其19个核心模块的配置逻辑其实藏着不少"…...