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

文章目录

    • 57 openEuler搭建Mariadb数据库服务器-管理数据库用户
      • 57.1 创建用户
      • 57.2 查看用户
      • 57.3 修改用户
        • 57.3.1 修改用户名
        • 57.3.2 修改用户示例
        • 57.3.3 修改用户密码
        • 57.3.4 修改用户密码示例
      • 57.4 删除用户
      • 57.5 用户授权
      • 57.6 删除用户权限

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)]> 

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230420191207532

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(Ubuntu22.04 Jammy)安装ROS2 Humble

文章目录 (Ubuntu22.04 Jammy)安装ROS2 (Humble)版本一、设置本地区域二、设置源三、安装ROS2软件包四、环境设置五、测试用例Talker-listener 六、卸载ros2 (Ubuntu22.04 Jammy)安装ROS2 (Humble)版本 提示:以下内容是已经安装了ubuntu22.04 下进行安装ros2 一、设…

Java语法理论和面经杂疑篇《十二. JDK8 - 17新特性》

第18章_JDK8-17新特性(下) 6. 新语法结构 新的语法结构,为我们勾勒出了 Java 语法进化的一个趋势,将开发者从复杂、繁琐的低层次抽象中逐渐解放出来,以更高层次、更优雅的抽象,既降低代码量,又…

设计模式-结构型模式之享元模式

5. 享元模式 5.1. 模式动机 面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。 享元模式正是为解决这一类问题而诞生的。享元模…

函数栈帧的创建和销毁【汇编语言理解】

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

【C++的内联函数】

文章目录 一、什么是内联函数二、内联函数的优缺点三、使用内联函数的注意事项 一、什么是内联函数 用关键字inline修饰的函数叫做内联函数。 C编译器编译时会自动在被调用的地方展开。 二、内联函数的优缺点 内联函数的优点: 没有函数栈帧创建,提升…

WebRTC系列-Qos系列之AEC-可配置参数

文章目录 1. 简介2. 源码中相关参数WebRTC的自适应回声消除(AEC)是一个广泛使用的技术,用于在音频通信中消除扬声器输出产生的回声。在WebRTC中,有三种AEC算法可供选择,分别是 AECM、 AEC和 AEC3。本文将介绍WebRTC AEC 3算法的原理和应用场景。 在上图中可以看出AEC算…

应用于音箱领域中的音频功放IC型号推荐

音箱音频功放ic俗称“扩音机”又叫音频功率放大器IC;是各类音响器材中不可缺少的部分,其作用主要是将音源器材输入的较微弱信号进行放大后,产生足够大的电流去推动扬声器进行声音的重放。 现如今,音频功放芯片伴随着人工交互及智…

OpenShift 4 - 在 CI/CD Pipeline 中创建 KubeVirt 容器虚拟机 - 方法1+2 (视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 文章目录 准备环境安装可实现 KubeVirt 操作的 Tekton 资源创建密钥对 在 CI/CD 流水线管道中创建 VM方法1:通过 Manifest 任务创建 VM方法2&am…

自动驾驶企业面临哪些数据安全挑战?

近期,“特斯拉员工被曝私下分享用户隐私”不可避免地成了新闻热点,据说连马斯克也不能幸免。 据相关媒体报道,9名前特斯拉员工爆料在2019年至2022年期间,特斯拉员工通过内部消息系统私下分享了一些车主车载摄像头记录的隐私视频和…

spring框架注解

3.Spring有哪些常用注解呢? Spring常用注解 Web: Controller:组合注解(组合了Component注解),应用在MVC层(控制层)。 RestController:该注解为一个组合注解,相当于Con…

MySql-高级( 面试问题简析) 学习笔记

文章目录 1. MySql 中 MyISAM 和 InnoDB 存储引擎区别1.1. MyISAM1.2. InnoDB 2. 索引的数据结构2.1. B Tree索引2.2. BTree索引2.3. MySql 做的优化 3. 为什么使用BTree索引而不使用Hash索引?4. 为什么使用BTree索引而不使用B-Tree索引?5. MyISAM 存储引…

设计模式-创建型模式之建造者模式

5. 建造者模式 5.1. 模式动机 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节&…

FPGA学习笔记(三):PLL 锁相环

在 FPGA 芯片内部集成了 PLL(phase-locked loop,锁相环),可以倍频分频,产生其它时钟类型。PLL 是 FPGA 中的重要资源,因为一个复杂的 FPGA 系统需要不同频率、相位的时钟信号,一个 FPGA 芯片中 PLL 的数量是衡量 FPGA …

chatgpt智能提效职场办公-ppt怎么加音乐背景

作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 在 PowerPoint 中,您可以轻松地将音乐作为背景音乐添加到您的演示文稿中。下面是步骤: 打开您的 PowerPoint 演…

Linux文件类型与属性

一、文件类型 Linux 系统下一共分为 7 种文件类型。通过 stat 命令或者 ls 命令来查看文件类型。 - :普通文件 d :目录文件 c :字符设备文件 b :块设备文件 l :符号链接文件 s :套接字文件 p &…

关于今年五一调休。。

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,YOLO,活动领域博主爱笑的男孩。擅长深度学习,YOLO,活动,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typecollect个人…

11、HOOK原理上

一、HOOK 1.1 HOOK简介 HOOK,中文译为“挂钩”或“钩子”.在iOS逆向中是指改变程序运行流程的一种技术.通过hook可以让别人的程序执行自己所写的代码. 在逆向中经常使用这种技术重点要了解其原理,这样能够对恶意代码进行有效的防护. 1.2 Hook的应用场景 描述一个HOOK实用技…

【李老师云计算】实验一:Hadoop伪分布式集群部署与Eclipse访问Hadoop进行单词计数统计

索引 前言实验内容1. 安装虚拟机1.1 安装与激活1.2 ★解决使用虚拟机蓝屏(绿屏) 2. 安装CentOS2.1 下载CentOS2.2 VMware新建虚拟机2.3 安装CentOS(包括GUI、主机名)2.4 ★解决已经创建虚拟机改主机名 3. VMWare 网络配置3.0 使用VI编辑器和VMware3.0.1 使用VI编辑器3.0.2 使用…

遇到Spring事务失效,你该怎么办?

Spring 事务场景失效是一个常见的问题。今天来分析这个问题。 1、事务方法被final、static关键字修饰,方法访问权限不是public Service public class UserService {Autowiredprivate UserDao userDao;// final修饰的事务方法Transactionalpublic final void addUse…

技术干货|直流电源自动测试系统功能介绍

直流电源是一种将交流电转换为恒定电压或电流输出的电子设备。在实际生产生活中,直流电源被广泛应用于各种场合。但由于各种原因,包括工艺、质量等因素,直流电源存在一定的出厂偏差。为了确保直流电源的精度和稳定性,在生产过程中…