57 openEuler搭建Mariadb数据库服务器-管理数据库用户

2023-10-31

57 openEuler搭建Mariadb数据库服务器-管理数据库用户

57.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的本地用户。

MariaDB [(none)]> CREATE USER 'testuser1'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]>

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

MariaDB [(none)]> CREATE USER 'testuser2'@'192.168.0.100' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 

57.2 查看用户

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

查看特定用户:

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

查看所有用户:

SELECT USER,HOST,PASSWORD FROM mysql.user;

其中:

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

例如示例命令如下:

查看testuser1用户。

MariaDB [(none)]> SHOW GRANTS FOR 'testuser1'@'localhost';
+------------------------------------------------------------------------------------------------------------------+
| Grants for testuser1@localhost                                                                                   |
+------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `testuser1`@`localhost` IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
+------------------------------------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

MariaDB [(none)]> 

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

MariaDB [(none)]> SELECT USER,HOST,PASSWORD FROM mysql.user;
+-------------+---------------+-------------------------------------------+
| User        | Host          | Password                                  |
+-------------+---------------+-------------------------------------------+
| mariadb.sys | localhost     |                                           |
| root        | localhost     | *E20F17D9FA1E9A6203D3EA047C3A949897E6A01D |
| mysql       | localhost     | invalid                                   |
| testuser1   | localhost     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| testuser2   | 192.168.0.100 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-------------+---------------+-------------------------------------------+
5 rows in set (0.001 sec)

MariaDB [(none)]> 

57.3 修改用户

57.3.1 修改用户名

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

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

其中:

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

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

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

57.3.2 修改用户示例

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

MariaDB [(none)]> RENAME USER 'testuser1'@'localhost' TO 'testuser2'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 

57.3.3 修改用户密码

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

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

其中:

  • FOR ‘username’@‘hostname’:FOR字句,可选项,指定欲修改密码的用户名及主机名。
  • PASSWORD(‘newpassword’):表示使用函数PASSWORD()设置新口令,即新口令必须传递到函数PASSWORD()中进行加密。

image-20221219193932361 注意:
PASSWORD()函数为单向加密函数,一旦加密后不能解密出原明文。

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

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

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

57.3.4 修改用户密码示例

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

MariaDB [(none)]> SET PASSWORD FOR 'testuser2'@'localhost' = PASSWORD('0123456') ;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 

57.4 删除用户

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

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

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

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

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

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

例如示例命令如下:

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

MariaDB [(none)]> DROP USER 'testuser2'@'localhost';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 

57.5 用户授权

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

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

其中:

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

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

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

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

例如示例命令如下:

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

MariaDB [(none)]> GRANT SELECT,INSERT ON *.* TO 'testuser2'@'192.168.0.100'; 
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 

57.6 删除用户权限

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

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

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

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

例如示例命令如下:

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

MariaDB [(none)]> REVOKE INSERT ON *.* FROM 'testuser2'@'192.168.0.100';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> 

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

57 openEuler搭建Mariadb数据库服务器-管理数据库用户 的相关文章

  • 【计算机毕业设计】电影播放平台

    电影播放平台采用B S架构 数据库是MySQL 网站的搭建与开发采用了先进的java进行编写 使用了springboot框架 该系统从两个对象 由管理员和用户来对系统进行设计构建 主要功能包括 个人信息修改 对用户 电影分类 电影信息等功能
  • 【计算机毕业设计】北工国际健身俱乐部

    本系统为会员而设计制作北工国际健身俱乐部 旨在实现北工国际健身俱乐部智能化 现代化管理 本北工国际健身俱乐部管理自动化系统的开发和研制的最终目的是将北工国际健身俱乐部的运作模式从手工记录数据转变为网络信息查询管理 从而为现代管理人员的使用提
  • 【计算机毕业设计】宝鸡文理学院学生成绩动态追踪系统

    研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人 设备和场景更立体的连接在一起 能让用户以更科幻的方式使用产品 体验高科技时代带给人们的方便 同时也能让用户体会到与以往常规产品不同的体验风格 与安卓 iOS相比较起来
  • Oracle EBS AP发票导入 API Rejection List 第二部分

    Oracle EBS AP发票导入 API Rejection List 第二部分 The report lists the reason the invoice could not be imported and prints a bri
  • 面试官问,如何在十亿级别用户中检查用户名是否存在?

    面试官问 如何在十亿级别用户中检查用户名是否存在 前言 不知道大家有没有留意过 在使用一些app注册的时候 提示你用户名已经被占用了 需要更换一个 这是如何实现的呢 你可能想这不是很简单吗 去数据库里查一下有没有不就行了吗 那么假如用户数量
  • 服务器VPS是什么意思?一文了解其含义与重要性

    在今天的数字时代 服务器扮演着至关重要的角色 它们是网站 应用程序和在线业务的基石 但是 你是否听说过VPS 本文将深入探讨什么是服务器VPS 以及为什么它在今天的互联网世界中如此重要 什么是服务器VPS 服务器的基本概念 在我们深入探讨V
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    深入解析统一身份认证 介绍 原理和实现方法 导语 统一身份认证是什么 统一身份认证的原理 统一身份认证的实现 结语 导语 随着互联网的发展和各种在线服务的普及 用户在不同的应用和平台上需要进行多次身份验证 为了简化用户的登录和减少重复操作
  • 将 MariaDB 与实体框架结合使用

    最近 我读到一则新闻 说 MariaDB 是 MySQL 的替代品 因为MySQL 对集群 企业版的定价不友好 http www theregister co uk 2013 09 12 google mariadb mysql migra
  • 无法使用 DBeaver 连接到 MariaDB

    我刚刚在 Ubuntu 18 04 上安装了 MariaDB 10 1 29 从命令行我可以使用 sudo 连接 sudo mysql u root p 但并非没有 sudo 另外 如果我尝试通过连接到数据库DBeaver https db
  • MariaDB 无法导入此转储文件

    我有 MariaDB 版本 5 5 39 mysqldump u root p database gt dumpfile sql 是的 这工作正常 它会生成一个转储文件 但我无法导入此转储文件 所有这些命令都不起作用 mysqldump u
  • 使用 COUNT 后如何获得其他列上具有相同值的列的平均值?

    我有以下查询 SELECT COUNT id AS number of orders FROM orders WHERE MONTH date 5 GROUP BY item number MONTH date YEAR date 我得到以
  • SQL Select 语句中的动态列,保留“未定义”值

    这是基于我之前的问题的一个新问题 该问题被标记为问题的 重复 mySQL 使用三个表中的数据和列创建新表 https stackoverflow com questions 26665499 mysql create a new table
  • COM_STMT_PREPARE 响应大小错误。收到 7.LARAVEL 错误

    我有一个使用 laravel 开发的博客 在我的本地电脑上 一切正常 但是当我将其上传到实时共享托管服务器时 它会抛出如下错误 ErrorException in MySqlConnector php line 124 Wrong COM
  • MySQL 和 MariaDB 中 JSON_SEARCH 的区别

    我只是尝试使用获取价值路径JSON SEARCH功能 SELECT JSON SEARCH 12 13 12 123 one 123 null path 当我在 MariaDB 中运行此查询时我得到了想要的结果 path 2 12 但在顶级
  • ROCKSDB 由于rocksdb_max_row_locks 无法获取锁

    我尝试将 CSV 加载到 Rocksdb 数据库中 但失败并显示以下错误 Got error 10 Operation aborted Failed to acquire lock due to rocksdb max row locks
  • WAMP服务器将MySQL切换为MariaDB

    如何在WAMP 3 1 0中将数据库从MySQL切换到MariaDB 我正在寻找它 但我找不到它 从您显示的图像来看 MySQL 和 MariaDB 似乎都已经在运行 注意 这有点占用内存 简单测试看看 MySQL 和 MariaDB 是否
  • MariaDB 服务器在 600 秒后客户端连接超时

    我的 MariaDB 服务器在 600 秒 10 分钟 不活动后使我的 C 客户端 使用 libmariadb 超时 我不确定为什么 因为我找不到任何指定该数字的已配置超时 这是我的代码 我在其中执行一个简单的 SELECT 查询 等待 1
  • 挂载卷时无法运行 mariadb

    使用以下 docker compose yml 文件 version 2 services wordpress image wordpress ports 8080 80 environment WORDPRESS DB NAME my d
  • 安装 mariadb 包时找不到 mariadb_config [重复]

    这个问题在这里已经有答案了 我尝试在 ubuntu 20 04 上安装 mariadb 软件包 并收到以下消息 Collecting mariadb Using cached mariadb 1 1 3 tar gz 80 kB Prepa
  • 为通用字符选择表排序规则

    我正在开发一个需要存储通用字符的后端 我选择了utf8mb4用于此目的的表编码 我还必须选择表格排序规则 最直接的选择是选择utf8mb4 general ci表整理 除了一般的排序规则之外 还有大约20种其他排序规则可供选择 更具体的排序

随机推荐

  • oracle获取随机记录

    oracle获取随机记录 select from select from ford car order by dbms random value where rownum lt 1001
  • 【vision transformer】DETR原理及代码详解(三)

    transformer 端到端目标检测DETR项目实践及代码详解 Paddle Detr git PaddleViT object detection DETR at develop BR IDL PaddleViT GitHub 数据集及
  • Redis SDS简单动态字符串

    结构体定义 本质上说就是用C语言来实现基本的面向对象 来对底层的字符串进行表示 方便上层使用 为调用者减少负担 typedef char sds struct sdshdr int len int free char buf 举例常用操作
  • 搭建JMeter分布式测试环境

    分布式测试概述 现在我们来了解如何使用多台机器来执行压力测试 也就是所谓的分布式测试 当我们模拟大量的并发虚拟用户时 比如我们要起10万 100万甚至更多的并发用户时 一台负载机器可能就满足不了我们需要的用户量 此时 就需要使用多台主机搭建
  • Git入门--自定义标签

    忽略特殊文件 忽略某些文件时 需要编写 gitignore gitignore文件本身要放到版本库里 并且可以对 gitignore做版本管理 配置别名 git config global alias co checkout 用co来代替c
  • FFmpeg源码分析:av_register_all()注册封装器与解封装器

    FFmpeg中av register all 函数用于注册所有muxers demuxers与protocols FFmpeg4 0以前是用链表存储muxer demuxer FFmpeg4 0以后改为数组存储 并且av register
  • SPP原理和代码

    空间金字塔池化 Spatial Pyramid Pooling SPP 原理和代码实现 Pytorch 一 为什么需要SPP 首先需要知道为什么需要SPP 我们都知道卷积神经网络 CNN 由卷积层和全连接层组成 其中卷积层对于输入数据的大小
  • 众享比特董事长严挺:数字藏品在国内有三大发展趋势

    2022年11月2日 巴比特主办的温州元宇宙月系列活动之 数字藏品 虚拟人 元宇宙营销新策略 论坛在温州召开 众享比特董事长严挺 众享链网发起人严挺出席论坛并进行主题为 元宇宙在国内落地的一些实践分享 的演讲 温州元宇宙主题月秉承 拥抱数字
  • Hyperledger fabric2.4 搭建自己的网络

    1 使用cryptogen工具生成证书 1 1 将fabric samples bin目录下的二进制文件复制到 usr local bin目录 以便全局使用这些命令 cd fabric samples bin cp usr local bi
  • 那些你可能遇到的 Linux 命令?什么,你还不知道?赶紧收藏?完善中!

    文章目录 一 Linux 进程 1 通过进程名查找进程号 1 1 ps aux ps ef diff 1 2 ps aux ps aux 什么 它们不一样 1 3 grep awk 取出进程号 取出进程号并 Kill 2 通过进程号查看进程
  • LINUX应用和驱动交互的四种方式

    Linux开发中 应用读取数据时往往会遇到驱动尚未获得有效数据的情况 所以需要采用适合的同步方式 1 非阻塞方式 非阻塞方式 顾名思义就是不管数据是否准备好 驱动都会返回结果 采用这种方式就需要应用不停地重复查询 查询硬件的线程就会一直都占
  • Centos7 升级openssl-1.1.1s及openssh-9.1p1(附脚本)

    主要是上个月openssl出现了漏洞 因此要对服务器的进行升级 建议如果没问题还是尽量别升级 主要步骤是2 脚本内容也只包含升级 1和3是开启和关闭telnet 不建议使用telnet 1 安装和启动telnet 实际中我没使用telnet
  • 数据结构前言

    一 什么是数据结构 数据结构是计算机存储 组织数据的方式 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合 上面是百度百科的定义 通俗的来讲数据结构就是数据元素集合与数据元素集合或者数据元素与数据元素之间的组成形式 举个简单明了的
  • Web Worker 用法

    一 概述 JavaScript 语言采用的是单线程模型 也就是说 所有任务只能在一个线程上完成 一次只能做一件事 前面的任务没做完 后面的任务只能等着 随着电脑计算能力的增强 尤其是多核 CPU 的出现 单线程带来很大的不便 无法充分发挥计
  • DBaaS体系及特性

    用户对云计算的交付能力已经不再满足于单纯的基础设施 IaaS 交付 他们希望数据中心中的更多传统IT 服务能以云服务模式进行交付 其中最为迫切的就是数据库 将数据库以云服务模式交付给用户 就是数据库即服务 DBaaS 也称云数据库 传统数据
  • VirusTotal——您身边的企业安全专家

    本文由 Cloud Ace 整理发布 Cloud Ace 是谷歌云全球战略合作伙伴 拥有 300 多名工程师 也是谷歌最高级别合作伙伴 多次获得 Google Cloud 合作伙伴奖 作为谷歌托管服务商 我们提供谷歌云 谷歌地图 谷歌办公套
  • 基于linux环境下安装jre + eclipse cdt

    博客的排版真的好糟糕 请看点击打开链接 一 下载所用到的软件安装包 1 java运行环境 jre 8u112 linux x64 tar gz 2 elipse cdt版本 eclipse cpp neon 2 linux gtk x86
  • pyahocorasick和pyltp包安装方法

    1 安装pyahocorasick 包 pip install pyahocorasick i Simple Index 这个需要VS环境 如果命令行安装提示没有VS环境可以进入 用VS命令行执行pip命令 即可安装成功 2 安装pyltp
  • Vue中el-dialog的用法

    写入HTML
  • 57 openEuler搭建Mariadb数据库服务器-管理数据库用户

    文章目录 57 openEuler搭建Mariadb数据库服务器 管理数据库用户 57 1 创建用户 57 2 查看用户 57 3 修改用户 57 3 1 修改用户名 57 3 2 修改用户示例 57 3 3 修改用户密码 57 3 4 修