61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户

2023-11-06

61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户

61.1 创建用户

可以使用CREATE USER语句来创建一个或多个用户,并设置相应的口令。

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

其中:

  • username:用户名。
  • hostname:主机名,即用户连接数据库时所在的主机的名字。若是本地用户可用localhost,若在创建的过程中,未指定主机名,则主机名默认为“%”,表示一组主机。
  • password:用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器,但从安全的角度而言,不推荐这种做法。

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

使用CREATE USER语句创建一个用户账号后,会在系统自身的数据库的user表中添加一条新记录。若创建的账户已经存在,则语句执行时会出现错误。

新创建的用户拥有的权限很少,只允许进行不需要权限的操作,如使用SHOW语句查询所有存储引擎和字符集的列表等。

示例

创建密码为123456,用户名为testuser1的本地用户。

mysql> CREATE USER 'testuser1'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> 

创建密码为123456,用户名为testuser2,主机名为192.168.0.100的用户。

mysql> CREATE USER 'testuser2'@'192.168.0.100' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.2 查看用户

可以使用SHOW GRANTS语句或SELECT语句查看一个或多个用户。

查看特定用户:

SHOW GRANTS [FOR 'username'@'hostname'];
SELECT USER,HOST,PASSWORD FROM mysql.user WHERE USER='username';

查看所有用户:

SELECT USER,HOST FROM mysql.user;

其中:

  • username:用户名。
  • hostname:主机名。

示例

查看testuser1用户。

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

mysql> 

查看mysql数据库中所有用户。

mysql> SELECT USER,HOST FROM mysql.user;
+------------------+---------------+
| USER             | HOST          |
+------------------+---------------+
| root             | %             |
| testuser2        | 192.168.0.100 |
| mysql.infoschema | localhost     |
| mysql.session    | localhost     |
| mysql.sys        | localhost     |
| root             | localhost     |
| testuser1        | localhost     |
+------------------+---------------+
7 rows in set (0.00 sec)

mysql> 

61.3 修改用户

61.3.1 修改用户名

可以使用RENAME USER语句修改一个或多个已经存在的用户名。

RENAME USER 'oldusername'@'hostname' TO 'newusername'@'hostname';

其中:

  • oldusername:旧的用户名。
  • newusername:新的用户名。
  • hostname:主机名。

RENAME USER语句用于对原有的账号进行重命名。若系统中旧账号不存在或者新账号已存在,则该语句执行时会出现错误。

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

61.3.2 修改用户示例

将用户名testuser1修改为testuser2,主机名为locahost。

mysql> RENAME USER 'testuser1'@'localhost' TO 'testuser2'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.3.3 修改用户密码

可以使用SET PASSWORD语句修改一个用户的登录密码。

SET PASSWORD FOR 'username'@'hostname' = 'newpassword';

其中:

  • FOR ‘username’@‘hostname’:FOR字句,可选项,指定欲修改密码的用户名及主机名。
  • ‘newpassword’:新密码。

在SET PASSWORD语句中,若不加上FOR子句,表示修改当前用户的密码。

FOR字句中必须以’username’@'hostname’的格式给定,username为账户的用户名,hostname为账户的主机名。

欲修改密码的账号必须在系统中存在,否则语句执行时会出现错误。

61.3.4 修改用户密码示例

将用户名为testuser2的密码修改为0123456,主机名为locahost。

mysql> SET PASSWORD FOR 'testuser2'@'localhost' = '0123456';
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.4 删除用户

可以使用DROP USER语句来删除一个或多个用户账号以及相关的权限。

DROP USER 'username1'@'hostname1' [,'username2'@'hostname2'];

image-20221219193932361 注意:
用户的删除不会影响他们之前所创建的表、索引或其他数据库对象,因为数据库并不会记录创建了这些对象的账号。

DROP USER语句可用于删除一个或多个数据库账号,并删除其原有权限。

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

在DROP USER语句的使用中,若没有明确地给出账号的主机名,则该主机名默认为“%”。

示例

删除用户名为userexample的本地用户。

mysql> DROP USER 'testuser2'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.5 用户授权

可以使用GRANT语句来对新建用户的授权。

GRANT privileges ON databasename.tablename TO 'username'@'hostname';

其中:

  • ON字句:用于指定权限授予的对象和级别。
  • privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所有的权限则使用ALL。
  • databasename:数据库名。
  • tablename:表名。
  • TO字句:用来设定用户密码,以及指定被赋予权限的用户。
  • username:用户名。
  • hostname:主机名。

如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*。

如果在TO子句中给系统中存在的用户指定密码,则新密码会将原密码覆盖。

如果权限被授予给一个不存在的用户,则会自动执行一条CREATE USER语句来创建这个用户,但同时必须为该用户指定密码。

示例

对本地用户userexample授予SELECT和INSERT权限。

mysql> GRANT SELECT,INSERT ON *.* TO 'testuser2'@'192.168.0.100'; 
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.6 删除用户权限

可以使用REVOKE语句来删除一个用户的权限,但此用户不会被删除。

REVOKE privilege ON databasename.tablename FROM 'username'@'hostname';

其中REVOKE语句的参数与GRANT语句的参数含义相同。

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

示例

删除本地用户testuser2的INSERT权限。

mysql> REVOKE INSERT ON *.* FROM 'testuser2'@'192.168.0.100';
Query OK, 0 rows affected (0.00 sec)

mysql> 

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

61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户 的相关文章

  • 在 MySQL 中存储表情符号的编码问题:如何使用 Prisma ORM 在 NodeJS 中定义字符排序规则?

    亲爱的 Nodejs 专家和数据库专家 我们在 MySQL 数据库中存储表情符号和其他特殊字符时遇到问题 我们使用 Prisma 得到一个错误 这是我们使用的 ORM 参数无法从排序规则 utf8 general ci 转换为 utf8mb
  • 不允许在 php 中连接到此 MariaDB 服务器

    我尝试在 php 中连接远程服务器数据库 但出现以下错误 Host xx xxx xx xx is not allowed to connect to this MariaDB server in 我的连接代码是这样的 servername
  • 连接 Netbeans 和 MySQL 但出现大整数错误

    所以我正在尝试向我的 Netbeans 数据库 即 MySQL 添加新连接 但我遇到了大整数转换错误 有人可以帮助我吗 详细地 我右键单击现有的MySQL 服务器位于 localhost 3306 root 已断开连接 gt gt 选择co
  • 如果没有找到值,如何让 MySQL 中的 SUM 函数返回“0”?

    假设我在 MySQL 中有一个简单的函数 SELECT SUM Column 1 FROM Table WHERE Column 2 Test 如果没有条目Column 2 包含文本 Test 然后该函数返回NULL 而我希望它返回 0 我
  • Windows 8.1 升级后 Apache 无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天从 Windows 8 升级到 Windows 8 1 后 Apache 不再工作 我上次从 Windows 7 升级到 Window
  • 从另一台计算机访问 MYSQL

    我想开发一个java桌面应用程序 我想在其中设置服务器 这意味着我在这里使用mysql db 该数据库将仅存储在一台电脑上 其余所有用户都可以访问该数据库 所以 我听说了mysql远程连接 其中尝试了一些事情 这些措施如下 我的电脑已连接w
  • MySQL 和 Hibernate 之间的主键自增由谁负责?

    MySQL CREATE TABLE role id role INT 11 unsigned NOT NULL AUTO INCREMENT PRIMARY KEY id role AUTO INCREMENT 1 休眠 Entity p
  • 即使没有结果也返回一个值

    我有这种简单的查询 它返回给定 id 的非空整数字段 SELECT field1 FROM table WHERE id 123 LIMIT 1 问题是如果找不到 id 结果集就是空的 我需要查询始终返回一个值 即使没有结果 我有这个东西工
  • 只获取倒数第二条记录 - mysql-query

    我有一个如下表记录 my table id rating description 1 0 0 bed 2 1 0 good 3 0 0 bed 4 1 0 good 5 0 0 bed 6 0 0 bed 7 0 0 bed 现在我通过评级
  • PHP MYSQL文件内容转义问题

    我正在尝试使用 php 将 pdf 文件上传到 mysql 数据库中 除了文件内容之外 一切都很好 无论我如何尝试转义特殊字符 查询总是失败 主要是 未知命令 n 我使用过addslashes mysql real escape strin
  • libmysqlclient.a 和 libmysqlclient_r.a 有什么区别?

    我应该使用哪个来链接 mysqlclient 库 它们之间有什么区别 我似乎找不到答案 谢谢 较新版本的 MySQL 客户端发行版不包含 r 版本 有些可能有从 libmyqslclient r a 到 libmyqslclient a 的
  • 如果 Row1 = 值 1,则更新其他行

    我有一个小的 php 脚本 用于访问 mySql 数据库 我想在数据库中插入新记录之前查看该数字 值 1 是否等于数据库中的记录 这也在第 1 行 所以我想 查看传入的电话号码是否等于数据库中的电话号码 如果是这样 则必须保持电话号码相同的
  • 错误代码:1305。函数或过程不存在

    因此 我在 MySQL 中创建一个函数 然后尝试向用户授予使用该函数的权限 但我无法这样做 这就是我正在做的 DELIMITER USE rxhelp36 scbn DROP FUNCTION IF EXISTS businessDayDi
  • MySQL中如何声明变量?

    如何在mysql中声明一个变量 以便我的第二个查询可以使用它 我想写一些类似的东西 SET start 1 SET finish 10 SELECT FROM places WHERE place BETWEEN start AND fin
  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 如何检测Mysql/innodb中的死锁?

    我知道在 Innodb 中使用事务时不可避免地会发生死锁 并且如果应用程序代码正确处理死锁 它们是无害的 正如手册所说 只需再试一次 所以我想知道 如何检测死锁 死锁是否会发出一些特殊的 mysql 错误号 如果重要的话 我正在使用 PHP
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • mysql排序和排名语句

    我需要一些 mysql 语句的帮助 我的表 1 有 7 列 表 2 有 8 列 额外的列名为排名 我的语句应该是这样的 从表 1 中选择全部 然后按 用户数 排序 将其插入表 2 中并排名开始 1 2 3 等 table 1 usernam

随机推荐

  • 同步代码块synchronized的使用与解析

    Java 同步块 synchronized block 用来标记方法或者代码块是同步的 Java同步块用来避免竞争 本文介绍以下内容 Java同步关键字 synchronzied 实例方法同步 静态方法同步 实例方法中同步块 静态方法中同步
  • 量化择时——平均K线图双均线策略(第1部分—策略效果测算)

    文章目录 平均K线图概述 OHLC的计算方式 K线图走势对比 平均K线图阴阳线交易策略 交易规则 测算结论 双均线策略测算 测算规则 测算结论 平均K线图概述 平均K线图是蜡烛图的一种分支 在日本 Heikin意味着 平均 Ashi意味着
  • python root:code for hash md5 was not found.错误

    可能还会伴随一大堆其他错误 ERROR root code for hash md5 was not found Traceback most recent call last File usr local Cellar python 2
  • qt 怎么检测鼠标在不在某个控件上

    方式一 推荐 感觉这种事件过滤器的方法捕捉比较敏感 记得安装事件过滤器 this gt installEventFilter this protected bool eventFilter QObject obj QEvent event
  • k8s 配置 glusterFS 动态供给

    部署环境 Host IP k8s 版本 glusterFS版本 heketi版本 heketi client 版本 k8s master1 192 168 10 1 1 20 0 9 5 1 el7 heketi 8 0 0 1 heket
  • 短 URL 服务的设计与实现

    转载 https mp weixin qq com s DJM7KFFfgZ2AgfrrYHXSzQ 短url的好处有 短 短信和许多平台 微博 有字数限制 太长的链接加进去都没有办法写正文了 好看 比起一大堆不知所以的参数 短链接更加简洁
  • 如何查看端口是被哪个程序占用的

    一 开始 gt 运行 gt cmd 或者是window R组合键 调出命令窗口 二 输入命令 netstat ano 列出所有端口的情况 在列表中我们观察被占用的端口 比如是8080 首先找到它 三 查看被占用端口对应的PID 输入命令 n
  • C语言中输入输出重定,freopen()妙用。

    使用的理由 范围 如果输入数据很庞大 需要一次又一次的重新输入和调试时可采用本函数 freopen 函数 1 格式 FILE freopen const char filename const char mode FILE stream 2
  • window如何实时刷新日志文件

    1 安装windows git 下载地址 Git Downloading Package git scm com 2 打开git bash 输入tail exe f 日志文件路径
  • 19-Openwrt双固件升级

    在上一章节 Openwrt sysupgrade系统升级 中 我们描述了sysupgrade升级系统的过程 这种升级过程会直接firmware分区进行写入 无法保证系统的安全性 只要在写入过程突然断电就会出现系统写入失败 升级失败无法启动系
  • xml文件c语言读取函数,IDL读取XML文件

    使用IDL读取RADARSAT 2的数据 需要用到lutSigma xml文件中的定标常数来计算相关参量 本文需要提取lutSigma xml中的offset和gains参数 使用IDL来读取xml文件 并且提取特定的节点下的参数 经过实验
  • fifo复位问题

    一次笔者在调试K7和5EV模块通信时候遇到fifo状态异常问题 K7现象 full和empty均拉高 5EV现象 empty拉高 full拉低 但是写信号已经产生 问题原因 fifo的复位来的太早 而随路时钟来的太晚导致 因为fifo的写时
  • Host is not allowed to connect to this MySQL server解决方法

    先说说这个错误 其实就是我们的MySQL不允许远程登录 所以远程登录失败了 解决方法如下 在装有MySQL的机器上登录MySQL mysql u root p密码 执行use mysql 执行update user set host whe
  • 服务器内存型号2400,S26361-F3934-E511 8GB 1Rx4 PC4-2400 RX2540M2服务器内存

    S26361 F3934 E511 8GB 1Rx4 DDR4 PC4 2400 ECC Primergy CX2550M2 TX2560M2 RX2510M2 RX2530M2 RX2540M2 RX2560M2富士通服务器内存A3C40
  • nginx配置访问springboot服务

    一 idea中可通过 clean package打包命令 打好包 比如 端口为8080 服务访问地址为 前端打包文件为dist 访端口为8000 则可以这样配置nginx server listen 8000 location root h
  • OpenSSL在QT中的使用

    现在需要把OpenSSL集成到QT里面 本来是想直接把Cygwin的动态库和头文件直接拿来用的 没想到链接的时候报了一票错误 那好吧 重新自己build一个 这样来的也干净些 到官网上下载源码 根据里面的INSTALL W32一步步来 首先
  • 分类(6):不平衡和多分类问题

    原版 http www jianshu com p 15185f0ecb57 一 不平衡问题 1 不平衡数据 例如 一个产品生产的不合格产品数量会远低于合格产品数量 信用卡欺诈的检测中 合法交易远远多于欺诈交易 这时候 准确率的度量会出现一
  • windows安装pnpm后报错:pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

    使用 npm 方式 安装pnpm 命令如下 npm install g pnpm 安装完以后 执行pnpm v 查看版本号 pnpm v 执行完 发现报错 pnpm 无法将 pnpm 项识别为 cmdlet 函数 脚本文件或可运行程序的名称
  • 服务器被攻击了怎么办

    今天德迅云安全的我给大家讲讲服务器被攻击的那些事 首页给大家讲讲我一客户的亲身经历 我有个客户开设了电商平台 最近几年电商平台俨然已经成了老百姓的生活依赖 淘宝 京东 所以我这客户的小平台发展得也还不错 直到之前那段时间日子他遇上了大麻烦
  • 61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户

    文章目录 61 openEuler 22 03 LTS 搭建MySQL数据库服务器 管理数据库用户 61 1 创建用户 示例 61 2 查看用户 示例 61 3 修改用户 61 3 1 修改用户名 61 3 2 修改用户示例 61 3 3