7.3 MySQL用户账号管理

2023-05-16

7.3.1用户名称和密码

MySQL把账号存储在mysql系统数据库的user表中。一个账号被定义成一个用户名称和能够连接到服务器的客户端主机(群)。
账号都有一个密码。MySQL支持授权插件,也就是说一个账号授权可以使用其他的授权方式。详情见7.3.8。
MySQL使用账号名称和密码的方式与操作系统使用账号名称和密码的方式存在很多不同。

  • 账号名称,被MySQL用来授权,与Windows和Unix操作系统的账号名称(登陆账号)没有关系。在Unix上,很多MySQL客户端默认使用当前Unix账号作为MySQL账号名称,这只是为了方便。默认账号很容易被覆盖,因为客户端程序允许通过-u 或者–user选项来指定任何账号。这就意味着任何一人可以使用任意账号连接到服务器,你不能保证数据库安全除非每个账号都有一个密码。
  • MySQL账号名称限制在32个字符(MySQL5.7.8之前是16个字符)。操作系统账号会有不同的最大长度,比如Unix账号名称经常被限制在8个字符。
    • 对MySQL账号长度的限制是被硬编码在MySQL服务器和客户端上的。通过修改MySQL数据库中表的定义是不起作用的。
    • 你不应该以任何方式改变表的结构,除了使用5.4.7-mysql-upgrade中描述的存储过程。 试图通过任何一种方式重定义MySQL的系统表,都会导致undefined和unsupported错误。服务器会无视这样被更改的行。
  • 为了使用MySQL本身(由mysql-native-plugin授权插件执行)的授权方法来给账号的客户端连接授权,服务器使用user表中存储的密码。如果服务器使用其他插件授权客户端,插件执行授权的方法使用或许不使用user表中存储的密码。在那种情况下,MySQL服务器可能使用外部密码来鉴定用户。
  • 存储在user表中的密码使用插件指定的算法加密。关于MySQL自带的密码hash算法详情请看7.1.2.4-Password-hashing in MySQL。
  • 如果用户名和名称在包括ASCII字符,连接到服务器时可能不考虑字符集设定。当用户名或者密码包含非ASCII字符时,客户端应该调用 带mysql_set_charset_name 和合适的字符集选项的mysql_options() C API方法。只有使用特定的字符集才会使鉴定生效,否则鉴定会失败,除非服务器默认的字符集和鉴权编码时使用的字符集一样。
    标准的MySQL客户端程序支持–default-character-set选项来使mysql_option()方法按刚才描述的方式触发。另外,如在11.1.4中描述的,支持字符集自动识别。对于使用连接器不是基于C API的程序,连接器应该提供一个等同于mysql_option()的替代品。
    注解处理不适用于ucs2,utf16和utf32,这些字符集不允许作为客户端字符集使用。

7.3.2 增加用户账号

创建MySQL账号有两种方式
- 通过使用创建账号和设定密码的账号管理语句,比如create user 和grant,使服务器对相关的grant表进行合适的调整。
- 直接使用insert/update和delete语句来操作MySQL grant表。
比较好的方法是使用账号管理语句,因为这些账号管理语句比直接操作grant表更简洁和更不容易出错。这些语句在14.7.1中描述。不建议直接操作grant表。
另一个选择是使用图形化工具MySQL工作台。同时,很多第三方的程序也提供账号管理的能力。phpMyAdmin就是这样一款软件。
下面是一个创建账号的例子:

mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost'
-> WITH GRANT OPTION;
mysql> CREATE USER 'finley'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'%'
-> WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin_pass';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';

上面语句创建的账号有如下特性:
- 两个账号有用户名fineley和密码some_pass。它们都是有全部权限的超级账号。‘fineley@localhost’账号只有从localhost主机连接时能使用。‘fineley@%’账号使用%表示所有主机,所有这个账号可以从任意主机去连接服务器。
如果localhost主机存在匿名账号,那么‘fineley@localhost’是必需的。如果没有‘fineley@localhost’账号,当fineley账号从localhost连接时,匿名首先起作用,fineley会被当作匿名账号。原因是匿名账号比‘fineley@%’有一个更特定的主机名,这样匿名账号在user表排序中更靠前。(user表排序在7.2.4中讨论)
- ‘admin@localhost’账号的密码是admin_pass。它被赋予RELOAD和PROCESS管理权限。这些权限使admin用户能够执行mysqladmin reload,mysqladmin refresh,mysqladmin flush-xxx和mysqladmin processlist命令。没有存取任何数据库的权限。你可以通过使用grant语句增加这样的权限。
- ‘dummy@localhost’账号没有密码,没有权限。

为了查看一个账号的权限,可以使用show grants命令:
mysql> SHOW GRANTS FOR 'admin'@'localhost';
+-----------------------------------------------------+
| Grants for admin@localhost |
+-----------------------------------------------------+
| GRANT RELOAD, PROCESS ON *.* TO 'admin'@'localhost' |
+-----------------------------------------------------+

为了查看一个账号的非权限信息,可以使用show create user命令:
mysql> SHOW CREATE USER 'admin'@'localhost'\G
*************************** 1. row ***************************
CREATE USER for admin@localhost: CREATE USER 'admin'@'localhost'
IDENTIFIED WITH 'mysql_native_password'
AS '*67ACDEBDAB923990001F0FFB017EB8ED41861105'
REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK

7.3.3 移除用户账号

使用drop user语句来移除账号。在14.1.7.3中描述。比如
mysql> DROP USER 'jeffrey'@'localhost';

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

7.3 MySQL用户账号管理 的相关文章

  • python循环结构

    一 循环是什么 xff1f 循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构 它由循环体中的条件 xff0c 判断继续执行某个功能还是退出循环 根据判断条件 循环结构又可细分为以下两种形式 先判断后执行的循环结构和先执行后判断的
  • 给 Systemd service配置环境变量

    事件起因 xff0c 新加了个vncserver服务需要链接某个共享库 xff0c 这个共享库放在自定义的库路径中 xff0c 需要在服务启动前设置LD LIBRARY PATH环境变量 把export LD LIBRARY PATH加到了
  • 一个程序员的回忆录

    要么庸俗 xff0c 要么孤独 要么庸俗 xff0c 要么孤独 叔本华 今天是一个特殊的时间 xff0c 一个国庆和中秋在同一天的时间 特殊的时间总会回想起一些事情 xff0c 当事情可以用文章来表达的时候 xff0c 我便不再孤单 xff
  • python遇到‘\u’开头的unicode编码

    web信息中常会遇到 u4f60 u597d 类型的字符 首先 u 开头就基本表明是跟unicode编码相关的 xff0c u 后的16进制字符串是相应汉字的utf 16编码 python里decode 和encode 为我们提供了解码和编
  • My_Admin 独立系统开发第一节

    项目介绍 My Admin 项目后台该后台采用Tp5 43 layuimini 研发 xff0c 系统呢是准备研发一个垃圾回收小程序 垃圾回收小程序是结合市场需求开发的一个集运营与跑男端的垃圾回收小程序 目的是企业可以通过招募跑男 xff0
  • uni-app快速入门开发一个项目

    hello 大家好 xff0c 我是老张 xff0c 有的人称呼我为张工 一个不务正业的PHP开发者 xff0c 立志于做一个全栈开发工程师 今天呢 xff0c 我想补充一章关于uni app 如何开发 xff0c 如何建立项目 xff0c
  • uni-app开发知识付费系统个人中心界面

    hello 大家好 xff0c 我是老张 xff0c 那个不务正业的PHP开发工程师 今天是我使用uni app开发在线教育系统的第三天了 xff0c 今天主要开发了底部菜单的 xff0c 学习页面 xff0c 个人中心页面 xff0c 先
  • 阿里云负载均衡的配置和使用场景

    解释下什么叫做负载均衡 负载均衡 xff0c 英文名称为Load Balance xff0c 其含义就是指将负载 xff08 工作任务 xff09 进行平衡 分摊到多个操作单元上进行运行 xff0c 例如FTP服务器 Web服务器 企业核心
  • phpstudy下的nginx服务器显示目录

    在linux下配置Nginx的目录显示 linux下的基本命令 cd 切换目录 ls 查看目录 找到你的phpstudy的环境 cd 进入环境你会看到如下图一样所示的图片 cd server 使用 ls查看你会得到如图所示 cd nginx
  • <PHP 输出九九乘法表 for循环 递归>《正三角》《倒三角》

    lt php header 34 content type text html charset 61 utf 8 34 九九乘法表 正三角 64 var integer for i 61 1 i lt 61 9 i 43 43 for j
  • TP5+七牛云文件上传

    利用七牛云作为图片服务器来使用 xff0c 为什么使用七牛云 xff0c 使用七牛云的好处有很多 xff0c 节省自己的服务器空间 xff0c 七牛云的使用方便 xff0c 便宜 好了下面就说下TP5使用七牛云进行文件上传 第一步 xff0
  • 七牛云图片的预览

    上一个博客写了如何将本地图片上传到七牛云 xff0c 那么问题来了 xff0c 上传完毕后 xff0c 我们怎么才能在本地进行展示查看呢 xff1f 按照我们以前的思路那就是 xff0c 七牛云的域名 43 图片的名字 xff0c 但是呢
  • 华为2288hv5服务器安装ESXI 6.7(三):安装ESXI(转)

    https blog csdn net molei2009 article details 105184517 华为2288hv5服务器安装ESXI 6 7 xff08 二 xff09 xff1a 配置RAID 3211windows机器硬
  • Windows Server 2016 AD中新建组织单位、组、用户

    Windows Server 2016 AD中新建组织单位 组 用户 https blog 51cto com lumay0526 2046851 新建组织单位 新建组 新建用户 新建组织单位 组织单位简称OU xff0c OU是 xff0
  • Java连接mysql数据库,查询操作 的错误总结

    一 这个错误 xff0c 表示Mapper xml文件中的 resultMap 这个映射类的 id 重名了 span class token operator span span class token operator span Caus
  • Windows server 2016远程桌面登录和修改3389端口

    Windows server 2016远程桌面登录和修改3389端口 https www cnblogs com scaven 01 p 11715426 html windows server 2016 2019修改远程端口操作 http
  • Windows server2016 计算机管理中找不到用户和组

    https blog csdn net weixin 44801526 article details 104260389 Windows server2016 计算机管理中找不到用户和组 最近在学习过程中需要添加新用户 xff0c 找到
  • Python上传文件到百度网盘(二)之文件切割

    前言 继续上文提到的使用Python上传文件到百度网盘的伟大事业 接口分析 上文我们完成了百度网盘上传的api的封装 xff0c 通过分析api我得出 xff0c 需要完成上传4m以上的文件的话 xff0c 是需要分片上传滴 xff0c 具
  • 在OpenCore引导菜单添加Windows引导项

    在OpenCore引导菜单添加Windows引导项 OpenCore配置文件修改 在Misc HideSelf去掉勾选 在Misc BlessOverride添加EFIMicrosoftBootbootmgfw efi xff0c 如下图
  • OpenCore黑苹果引导开机声音与图形界面设置

    下载最新版本OpenCore与OpenCore Configurator 下载的OpenCore包里面包含了声音与图形所需要的Resources文件夹 Misc Boot下设置 Misc Boot PickerAudioAssist 勾选

随机推荐

  • 在你的硬盘上建立第二个 EFI 分区

    文章目录 隐藏 操作环境 xff1a macOS 群里经常会看到很多小白因为安装双系统导致破坏 EFI 引导分区的事情发生 xff0c 这通常是指Windows和macOS双系统并存的情况 一些台式机友为了彼此系统相安无事 xff0c 就加
  • OpenCore 升级 0.7.2 后引导界面没有 10.15 及以下系统选项的解决办法

    前言 OpenCore 发布了 0 7 2 正式版 xff0c 总体来看这并不是一个大更新 xff0c 属于常规更新 xff0c 但是在安全性方面做了一个不大不小的改动 xff0c 影响了很多用户 OpenCore 0 7 2 针对 mac
  • 黑苹果台式机免驱独显购买推荐

    文章目录 隐藏 macOS big sur 11 4 免驱动独显macOS Mojave macOS Catalina big sur Monterey系统下AMD免驱动独显 xff1a macOS Mojave macOS Catalin
  • 数组中删数(只删一个)

    Description 在给定的数组中删除一个数 Input 多组测试 xff0c 每组第一行输入1个整数n xff08 n lt 20 然后是n个整数 第二行输入1个整数m Output 删除在第一行的n个整数中第一次出现数字m并删除 x
  • 在java中 随机产生10个范围在1~100的随机数放置到数组中,重复的数去掉,使用原生的冒泡排序,然后遍历打印排序后的结果

    在java中 随机产生10个范围在1 100的随机数放置到数组中 xff0c 重复的数去掉 xff0c 使用原生的冒泡排序 xff0c 然后遍历打印排序后的结果 随机范围1 100的随机数 10个 放置到数组中 xff0c 重复的数组去掉
  • java.lang.ClassCastException: class org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast

    spring boot 3 0 0 使用gradle7 6整和myabtis plus 3 5 3 1 出现如下报错 java lang ClassCastException class org apache logging slf4j S
  • java上传图片或者文件到nginx服务器

    红线部分就是Nginx上的路径 注解 64 requiresPermissions这个是权限的问题 可以去掉 千万不要忘了红线部分 这是上传图片 其实上传文件跟这个也是一样的 当然这里面少了一些判断 比如限制文件的大小等 当你完成之后访问你
  • jsp页面的onclick事件

    lt input nclick 61 34 document all WebBrowser ExecWB 1 1 34 type 61 34 button 34 value 61 34 打开 34 name 61 34 Button1 34
  • 位运算abc

    位运算 xff0c 针对单个位进行的运算方式 xff0c 不涉及阶 常见的位运算包括位与 amp 位或 异或 位非 移位 左移 lt lt 和右移 gt gt 等运算 位运算常见的用处有 xff1a 对二进制数指定位置0 xff0c 1取出
  • c混合运算和数据类型转换

    C语言表达式进行混合运算时 xff0c 运算规则 xff1a 运算符相应的数据先做类型统一根据运算变量决定运算精度根据结果变量决定结果精度 其中 xff0c 类型统一时的默认的数据类型转换规则如下图 xff1a
  • oracle-plsql初步使用

    之前使用Oracle数据库都是通过jdbc接口调用oracle 最近由于工作的关系需要通过tns操作Oracle数据库 xff0c 于是把最近学习和收集的一点内容记录下来 xff0c 以便以后再次使用时参考 概念先行概念落地登陆常用sql利
  • ubuntu on win10

    开启大门 设置 安全和更新 针对开发人员 使用开发人员功能 开发人员模式控制面板 程序和功能 启用和关闭windows功能 适用于Linux的windows子系统 xff08 beta xff09 进入cmd命令窗口 xff0c 输入bas
  • Lamp环境搭建和ucenter/ucenterhome

    环境 xff1a Centos 7 3 1611 步骤 xff1a 安装apache php软件 xff1a yum install httpd php php mysql安装mysql mariadb xff0c 以Centos系统为例
  • win10安装系统自带应用

    以管理员身份启动系统自带的Windows Powershell组件 xff0c 接着输入Get AppxPackage allusers Select Name PackageFullName xff0c 通过该命令获取当前系统安装的所有应
  • SQL DDL从MySQL到Oracle

    最新一个项目的sql ddl为MySQL准备的 xff0c 我想在Oracle中使用 之前不太了解两者的区别 xff0c 结果报错一坨 于是顶着头皮开始看什么问题 xff0c 以下是我陷过的坑 xff0c 让大家看看 废话少说 xff0c
  • 7 MySQL安全概述

    1 常见因素 密码 常见的密码要求 xff1a 包含大小写 数字 特殊字符限制 长度 不要保存密码明文 为防止彩虹表 xff0c 也不要简单的使用hash方法 xff0c 可以采用hash hash password 43 salt 的方式
  • 关于SIFT和SURF介绍

    SIFT xff08 尺度不变特征变换 xff09 关于一些角点检测技术 xff0c 比如 Harris 等 它们具有旋转不变特性 xff0c 即使图片发生了旋转 xff0c 我们也能找到同样的角点 xff0c 但如果进行图像缩放 xff0
  • 7.2 MySQL权限系统原理

    MySQL权限系统的用户接口由SQL语句组成 xff0c 比如create user xff0c grant xff0c revoke 在数据库内部 xff0c MySQL把权限信息保存在MySQL database的赋权表中 MySQL服
  • 7.2.1 MySQL提供的权限

    MySQL提供的权限应用于不同的上下文和不同的操作级别 xff1a 管理权限使用户可以管理MySQL服务器的操作 这些权限是全局性的 xff0c 因为它们不是局限于某个特定的数据库 数据库权限应用于数据库和数据库的组成对象 这些权限可以被赋
  • 7.3 MySQL用户账号管理

    7 3 1用户名称和密码 MySQL把账号存储在mysql系统数据库的user表中 一个账号被定义成一个用户名称和能够连接到服务器的客户端主机 xff08 群 xff09 账号都有一个密码 MySQL支持授权插件 xff0c 也就是说一个账