【MySQL数据库】用户管理

目录

1,用户信息

2,创建/删除/修改用户

3,数据库的权限


        MySQL数据库安装完之后,我们最开始时使用的都是 root 用户,其它用户通常无法进行操作。因此,MySQL数据库需要对用户进行管理。

1,用户信息

        MySQL中的用户信息,都存储在系统数据库 mysql 的 user 表中。这里只研究 user 表中的 host, user, authentication_string

  • host:指定了允许用户连接的主机。如果是localhost,表示只能从本机登陆。
  • user:用户名字段,代表用户的登录名称。
  • authentication_string:该字段存储了用户的密码(或更准确地说,密码的哈希值)。它是用来验证尝试连接到MySQL服务器用户的身份。

查看MySQL用户信息:select host,user,authentication_string from user;

        下面进行有关用户的操作之前要说明的是,若数据库服务器的配置文件中(my.cnf里的[mysqld])使用了 skip-grant-tables,那么这里就无法进行用户相关的操作,因为该选项绕过服务器权限验证的操作,用户相关的操作一般都会设计到权限的分配操作,绕过权限验证操作,就意味着无法给相关用户分配权限,比如创建用户,需要给此用户分配登录权限。

2,创建/删除/修改用户

1,创建用户

语法:

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

样例:

        在本主机下创建zhu用户:create user 'zhu'@'localhost' identified by 'zhu';

        创建test用户,允许在任意主机下登录:create user 'test'@'%' identified by '123';

        查看user表可观看到:select user,host,authentication_string from user;

2,删除用户

语法:

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

样例:

        在本主机下删除用户zhu:drop user 'zhu'@'localhost';

3,修改用户密码

语法:

        自己改自己密码:set password=password('新的密码');

        root用户修改指定用户的密码:set password for '用户名'@'主机名'=password('新的密码');

3,数据库的权限

1,给用户授权

        刚创建的用户没有任何权限,这也就意味着 MySQL 服务器不会相应该用户的一切指令(如创建数据库,建立表,查看数据库等),因此,对于新建的用户而言,我们需要给用户授权。在MySQL中,给用户授权通常使用 grant 语句来完成。这个命令允许你指定特定的权限给一个或多个数据库对象。

语法:

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

说明:

        权限列表:可以是 all [可选privileges]表示所有权限,也可以是具体权限如select、insert、update、delete、create、drop等。

        数据库名.表名:指明权限应用到哪个数据库和表上。可以使用通配符*,例如:*.*:表示所有数据库的所有表;库.*:表示某个数据库中的所有数据对象

        用户名@主机名:指定用户以及允许从哪里连接(例如localhost)。

        IDENTIFIED BY '密码':可选字段,如果用户存在,赋予权限的同时修改密码;如果该用户不存在,就是创建用户。

注意:

        权限列表,多个权限用逗号分开,表示赋予多个权限,例如:

        grant select on ...

        grant select, delete, create on ....

        grant all [privileges] on ...         (表示赋予该用户在指定对象上的所有权限)

        还有就是,如果发现赋权限后,没有生效,执行指令:flush privileges; 并退出后重新登录。

样例:

        给zhu用户赋予所有数据库下所有表的select和create权限:

                grant select, create on *.* to 'zhu'@'%';

2,回收权限

语法:

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

样例:

        回收zhu对test数据库的所有权限:revoke all on test.* from 'zhu'@'%';

        注意:上面给用户权限赋予和收回操作全都是在root账户下进行的。在权限赋予和收回后,为了确保更改立即生效,我们需要运行指令:flush privileges; 刷新权限。

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

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

相关文章

Python的ArcPy基于Excel表格对大量遥感影像批量重分类

本文介绍基于Python中的ArcPy模块,以Excel表格内的信息,对遥感影像加以重分类的方法。 首先,明确一下本文的需求。现有按照文章ArcPy批量将栅格文件的属性表导出为Excel表格的方法(https://blog.csdn.net/zhebushibiaoshifu/artic…

LabVIEW 中VI Server导出 VI 配置

该 LabVIEW VI 展示了在 VI Server 中配置和执行 Exported VIs 的过程,实现对服务器端导出 VI 的远程调用与操作。 ​ 具体过程及模块说明 前期配置:需确保在 LabVIEW 的 “Tools> Options > VI Server > Protocols” 路径下,启用 …

论文阅读:2024 ACM SIGSAC Membership inference attacks against in-context learning

总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 Membership inference attacks against in-context learning https://arxiv.org/pdf/2409.01380 https://www.doubao.com/chat/4030440311895554 速览 这篇论文主要研究了…

从 Python 基础到 Django 实战 —— 数据类型驱动的 Web 开发之旅

主题简介: 本主题以 Python 基础数据类型为核心,结合 Django 框架的开发流程,系统讲解如何通过掌握数字、字符串、列表、元组、字典等基础类型,快速构建功能完善的 Web 应用。通过理论与实践结合,帮助学员从零基础 Py…

软考 系统架构设计师系列知识点之杂项集萃(53)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(52) 第85题 在静态测试中,主要是对程序代码进行静态分析。“数据初始化、赋值或引用过程中的异常”属于静态分析中的()。 A. 控制流分析 B. 数据…

Raycaster光线投射

Raycaster光线投射 3D虚拟工厂在线体验 描述 光线投射Raycaster,用于进行raycasting(光线投射)。 光线投射用于进行鼠标拾取(在三维空间中计算出鼠标移过了什么物体)。 构造器 Raycaster( origin : Vector3, dire…

初识Linux —— git三板斧

版本控制器git 为了我们方便管理不同版本的文件,就有了版本控制器; 所谓的版本控制器,就是能够了解到一个文件的历史记录(修改记录);简单来说就是记录每一次的改动和版本迭代的一个管理系统,同…

用哈希表封装出unordered_set/_map

前提: ①:本博客是对哈希表(开散列)进行封装,因为闭散列不优秀(与库保持一致) ②:哈希表封装出unordered_set/_map和红黑树封装出ste/map是大同小异的,可以先看下:用红黑树封装出set和map -CSDN博客 ③&…

情绪ABC——AI与思维模型【93】

一、定义 情绪ABC思维模型是一种心理学上的理论,它认为人们的情绪和行为反应(C,Consequence)并非直接由激发事件(A,Activating event)引起,而是由个体对激发事件的认知和评价所产生…

Unity URP RenderTexture优化(二):深度图优化

目录 前言: 一、定位深度信息 1.1:k_DepthStencilFormat 1.2:k_DepthBufferBits 1.3:_CameraDepthTexture精度与大小 1.4:_CameraDepthAttachment数量 二、全代码 前言: 在上一篇文章:Un…

【力扣刷题记录】hot100错题本(一)

1. 简单题 我的答案:时间复杂度过高:O(N^3) class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for num in nums:if (target - num) in nums:#多余for i in range(len(nums)):if nums[i] num :for j in range(i1,len(nu…

线程池的线程数配置策略

目录 1. CPU密集型任务 2. IO密集型任务 3. 混合型任务 1. CPU密集型任务 特点:任务主要消耗CPU资源(如计算、加密、压缩)。 推荐线程数: 线程数 ≈ 物理核心数 1 / CPU - 1(不知道哪个√) 例如&#…

基于开源链动2+1模式AI智能名片S2B2C商城小程序的爆品力构建研究

摘要:在兴趣电商生态中,爆品力已成为品牌实现指数级增长的核心竞争力。本文以开源链动21模式AI智能名片S2B2C商城小程序为技术载体,结合抖音平台的内容传播特性,提出“需求挖掘-技术赋能-内容转化”三位一体的爆品力构建模型。通过…

photoshop学习笔记2

第一章 第01节-界面的重要性(学习方法) 第02节-文件的打开新建及储存 第03节-移动工具(图层概念) 学习目标: 1.了解图层概念 2.认识工具属性 3.掌握工具使用 图层的概念 移动工具 移动工具就是用来移动图层内容的。是否可以用来移动组…

operator 可以根据需要重载 == 运算符进行比较

要将 vector<AppInfo> 类型的 A 和 B 两个容器进行比较&#xff0c;并且当 B 中有 A 中没有的元素时&#xff0c;插入到数据库中&#xff0c;你可以通过以下步骤实现&#xff1a; 比较元素&#xff1a;遍历 vector<B>&#xff0c;检查每个元素是否在 vector<A&…

Three.js在vue中的使用(二)-加载、控制

在 Vue 中使用 Three.js 加载模型、控制视角、添加点击事件是构建 3D 场景的常见需求。下面是一个完整的示例&#xff0c;演示如何在 Vue 单文件组件中实现以下功能&#xff1a; 使用 GLTFLoader 加载 .glb/.gltf 模型添加 OrbitControls 控制视角&#xff08;旋转、缩放、平移…

软件架构之旅(6):浅析ATAM 在软件技术架构评估中的应用

文章目录 一、引言1.1 研究背景1.2 研究目的与意义 二、ATAM 的理论基础2.1 ATAM 的定义与核心思想2.2 ATAM 涉及的质量属性2.3 ATAM 与其他架构评估方法的关系 三、ATAM 的评估流程3.1 准备阶段3.2 场景和需求收集阶段3.3 架构描述阶段3.4 评估阶段3.5 结果报告阶段 四、ATAM …

vue-chat 开源即时聊天系统web本地运行方法

官方文档 https://gitcode.com/gh_mirrors/vuechat7/vue-chat.git npm install 可能需要用 npm 下载两个包 "viewerjs": "^1.9.0", "vue-hot-reload-api": "^2.3.4", src\constant\index.js 改下面两行 export const LOGIN_API …

Rust与C/C++互操作实战指南

目录 1.前言2.动态库调用2.1 动态加载2.2 静态加载3.代码调用4.静态库调用1.前言 本文原文为:Rust与C/C++互操作实战指南 由于rust诞生时间太短,目前生态不够完善,因此大量的功能库都需要依赖于C、C++语言的历史积累。 而本文将要介绍的便是如何实现rust与c乃至c++之间实…