三、 mariadb数据库用户管理


1)查询有哪些用户
MariaDB> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
|      | localhost |
| root | localhost |
|      | oldboy    |
| root | oldboy    |
+------+-----------+
6 rows in set (0.00 sec)
2)mysql里用户特点

mysql里用户组成:用户@主机域

主机域:允许客户端主机访问的主机范围)
用户和主机域,两个合起来才算是mysql里的一个用户
2)删除用户语法
drop user 'user'@'主机域';
谈   对象   某个女孩名字


##练习:删除无用用户

drop user 'root'@'::1';
drop user ''@'localhost';
drop user ''@'oldboy';
drop user 'root'@'oldboy';

##删除结果,只保留两个管理员用户

MariaDB [(none)]> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+

3)查看当前登录用户
MariaDB [(none)]> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |   ###管理员用户,使用这个用户只允许在本机连接。
+----------------+

4)创建用户
a.用户特点:


用户@主机范围  ###合起来才算是一个MySQL用户

说明:主机范围就是允许哪些机器连接。
连接的机器的iP地址,必须再允许的主机范围内,否则不允许连接。 
管理要点:一个库对应一个管理员
root@localhost    #表示只能本机本地使用root访问数据库


b.授权主机范围


##单机服务器
localhost    #只能从本机访问,场景单机应用服务和数据库在一台机器推荐
127.0.0.1    #只能从本机访问,场景单机应用服务和数据库在一台机器推荐

10.0.0.166   #授权某个IP访问
====================================
##工作场景:是集群服务器,一堆应用服务器都会连接后端的数据库mysql.
10.0.0.0/24             #授权一个网段,推荐10.0.0.1--10.0.0.254
10.0.0.0/255.255.255.0  #授权一个网段,推荐10.0.0.1--10.0.0.254
10.0.0.%     #授权一个网段,推荐10.0.0.1--10.0.0.254


##禁止使用的授权
192.168.%        #更大网段授权  192.168.0.1---192.168.255.254
%                #任意主机都可以连接root@%。坚决杜绝,打死都杜绝。

工作场景:
企业里创建用户一般是授权一个【内网网段服务器登录】。
10.0.0.%(%为通配符,匹配所有内容)。
10.0.0.0/24 一个网段


c.创建用户
1)语法:


create user  blog@'10.0.0.%' identified by 'oldboy123';
命令   用户  用户名  主机域                         密码


2)创建用户实践:根据自己的linux ip段授权。
MariaDB> create user  blog@'10.0.0.%' identified by 'oldboy123'; ##局域网连接
MariaDB [mysql]> select user,host from mysql.user;
+------+--------------+
| user | host         |
+------+--------------+
| root | 127.0.0.1    |
| blog | 10.0.0.% |    ###创建的用户
| root | localhost    |
+------+--------------+
提示:使用create创建用户,默认是没有权限的;

3)从本机连接:


##无法连接的情况

[root@oldboy ~]# mysql -ublog -poldboy123 
ERROR 1045 (28000): Access denied for user 'blog'@'localhost' (using password: YES)


错误原因:数据库里没有你连接的'blog'@'localhost'用户###使用root@localhost连接,还有很多默认的选项

mysql -uroot -poldboy123###-hlocalhost -P3306 -S /var/lib/mysql/mysql.sock 可以省略
mysql -uroot -poldboy123 -hlocalhost -P3306 -S /var/lib/mysql/mysql.sock


##使用创建的blog@10.0.0.100用户从本机连接,把10.0.0.100替换成你的IP。

mysql -ublog -poldboy123 -h10.0.0.100 ##tcp/ip连接方式
[root@oldboy ~]# mysql -ublog -poldboy123 -h10.0.0.100
Welcome to the MariaDB monitor.  Commands end with ; or \g.##创建的用户权限
MariaDB [(none)]> show grants for  blog@'10.0.0.%';
+-----------------------------------------------------------------------------+
| Grants for blog@10.0.0.%                                                    |
+-----------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'blog'@'10.0.0.%' IDENTIFIED BY PASSWORD '*FE2D3235' |
+-----------------------------------------------------------------------------+
说明:USAGE表示仅有登录权限。

=========================
接下来讲为用户赋予权限。
=========================


5) mariadb数据库用户授权
1)创建用户并且授权


有两种方法:

语法1:推荐第一种
create user  用户@主机域 identified by '密码';

grant 权限 on 库.表 to 用户@主机域;

语法2: 创建用户加授权,mysql5.7以后取消了此法。
grant 权限 on 库.表 to 用户@主机域 identified by '密码';


2)授权blog@'10.0.0.%'所有权限


#授权

grant all on *.* to blog@'10.0.0.%';

#检查授权

show grants for  blog@'10.0.0.%';
##GRANT 【ALL PRIVILEGES】 ON *.* TO 'blog'@'10.0.0.%'

3)一条命令创建用户oldboy@'10.0.0.%',并授权所有权限
grant all on *.* to oldboy@'10.0.0.%' identified by 'oldboy123';
##刷新生效
flush privileges;
6) 使用win客户端连接数据库(可以可视化修改)
##1)使用客户端连接连接前需要关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
##2)安装sqlyog工具见群文件


使用sqlyog工具,通过oldboy@'10.0.0.%'链接数据库,见视频讲解。

##3)在Linux虚拟机里的数据库看来,windows宿主机的IP到底属于属于什么范围?
是vnet8网卡的ip 10.0.0.1,如果你的ip段和老师的不一样,把10.0.0改成你的虚拟机的网段。

##4)sqlyog里面操作和注释


## 显示所有数据库
SHOW DATABASES;

-- 查询所有用户
SELECT USER,HOST FROM mysql.user;
============================================
sqlyog工具可以像excell可视化增删改修改表内容。
============================================

7)故障排查:使用客户端连不上时候如何排查。

1)服务器端是否有连接的mysql的用户,授权范围是否正确。


[root@oldboyedu ~]# mysql -uoldboy -poldboy123 -h10.0.0.100

2)客户端ping ip


[x:\~]$ ping 10.0.0.108
如果不通,写错IP了,物理链路问题。

3)客户端telnet ip 3306

[x:\~]$ telnet 10.0.0.108 3306

如果不通大概率就是防火墙问题。
systemctl stop firewalld
systemctl enable firewalld

8) 数据库有哪些权限可以授权
##1.授权一个和管理员root等价的oldboy权限。
drop user oldboy@'10.0.0.%';
grant all on *.* to oldboy@'10.0.0.%' identified by 'oldboy123' with grant option;
flush privileges;
select user,host from mysql.user;
##2.前面授权命令


grant all on *.* to oldboy@'10.0.0.%' identified by 'oldboy123';
说明:all等价all privileges,唯独缺Grant option权限,不能使用grant创建用户以及授权):
如果增加Grant option权限,授权的时候加with grant option;

##3.查看数据库有哪些权限可以授权


show privileges;

###表的内容,开发人员###
SELECT    查询(数据)
INSERT    插入(数据)
UPDETE    修改(数据)
DELETE  删除(数据)

###表、库、索引,DBA管理员的权限
CREATE    创建(数据库、表等对象)
DROP    删除(数据库、表等对象)
INDEX    索引
ALTER    修改(数据库、表等对象)

###
RELOAD     重载
SHUTDOWN 关闭
PROCESS    进程
FILE    文件
REFERENCES    参考资料
SHOW?DATABASES    查看数据库
SUPER    超级权限
CREATE?TEMPORARY?TABLES    创建临时表
LOCK?TABLES    锁表
EXECUTE    执行
REPLICATION?SLAVE    从复制权限
REPLICATION?CLIENT    从客户端复制
CREATE?VIEW    创建视图
SHOW?VIEW    查看视图
CREATE?ROUTINE    创建存储过程
ALTER?ROUTINE    修改存储过程
CREATE?USER    创建用户
EVENT    事件
TRIGGER?    触发器
CREATE?TABLESPACE    创建表空间

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

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

相关文章

单链表专题(上)(顺序表链表线性表)

在开始之前思考一个顺序表的问题 1. 中间/头部的插⼊删除,时间 复杂度为O(N) 2. 增容需要申请新空间,拷⻉数据,释放旧空间。会有不⼩的消耗。 3. 增容⼀般是呈2倍的增⻓,势必会有⼀定的空间浪费。例如当前容量为100,…

类模板分文件编写

问题: 类模板中成员函数创建时机是在调用阶段,导致分文件编写时链接不到 解决: 解决方式1:直接包含.cpp源文件 解决方式2:将声明和实现写到同一个文件中,并更改后缀名为.hpp,hpp是约定的名称…

订单系统-RPC快速入门

RPC快速入门 概述 关于rpc,只需要知道他是一种协议,项目之间能够远程调用函数。 快速入门 我们前边下载好的两个包,在idea中打开之后,我们创建这么几个文件夹。 至于是干什么的,以后细说。创建好之后我们在produc…

【Java 面试题】面向对象和面向过程的区别

面向对象和面向过程的区别? 面向对象编程(OOP)和面向过程编程(POP)是两种不同的编程范式,它们之间有一些重要的区别: 思想方式: 面向对象编程:将问题看作是一组对象之间…

【OpenStack】创建并部署自己的Web服务器和应用

【OpenStack】创建并部署自己的Web服务器和应用 目录 【OpenStack】创建并部署自己的Web服务器和应用云服务的工作原理查看Swift Python SDK连接发送请求使用其他SDK和其他语言运行项目克隆存储库安装项目依赖项定义环境配置启动服务器推荐超级课程: Docker快速入门到精通

C语言如何定义有参函教?

一、问题 有参函数是函数的重点部分,那么如何定义有参函数呢? 二、解答 有参函数定义的⼀般形式如下。 类型声明符 函数名(形式参数列表) {声明部分;语句; } 在形参列表中给出的参数称为形式参数,它们可以是各种类型…

从零开始搭建游戏服务器 第七节 创建GameServer

目录 前言正文创建GameServer模块修改配置创建NettyClient连接到登录服登录服修改创建协议游戏服注册到登录服 总结 前言 上一节我们使用自定义注解反射简化了协议解包和逻辑处理分发流程。 那么到了这里登录服登录服的架构已经搭建的差不多了,一些比较简单的、并发…

使用 Outline 构建 企业 or 个人 知识库面临的问题

前不久,我写了一篇文章,介绍《如何在本地部署安装 Outline》,我之所以写这篇文章,主要原因是我最近需要做一个项目,使用 Outline 来构建一个公司级知识库。所以我需要在本地先搭建一个,来撰写一些前期的文档…

【环境配置】Ubuntu MySQL 8.0.28 安装并允许外部客户端连接

文章目录 MySQL 安装步骤配置 MySQL Server 允许外部连接 MySQL 安装步骤 步骤一:在 MySQL 官网找到 apt 仓库,下载最新的仓库 点击 Download: 输入如下命令: sudo wget -c https://dev.mysql.com/get/mysql-apt-config_0.8…

2014年认证杯SPSSPRO杯数学建模A题(第一阶段)轮胎的花纹全过程文档及程序

2014年认证杯SPSSPRO杯数学建模 A题 轮胎的花纹 原题再现: 轮胎被广泛使用在多种陆地交通工具上。根据性能的需要,轮胎表面常会加工出不同形状的花纹。在设计轮胎时,往往要针对其使用环境,设计出相应的花纹形状。   第一阶段问…

JVM(三)——字节码技术

三、字节码技术 1、类文件结构 一个简单的 HelloWorld.java package com.mysite.jvm.t5; // HelloWorld 示例 public class HelloWorld {public static void main(String[] args) {System.out.println("hello world");} }执行 javac -parameters -d . HellowWorld.…

Selenium 自动化 —— 实战篇之自动登录163邮箱

Selenium 自动化专栏系列文章 (一)入门和 Hello World 实例(二)使用WebDriverManager自动下载驱动(三)Selenium IDE录制、回放、导出Java源码(四)浏览器窗口操作(五&…

AI时代-普通人的AI绘画工具对比(Midjouney与Stable Diffusion)

AI时代-普通人的AI绘画工具对比(Midjouney与Stable Diffusion) 前言1、基础对比Stable Diffusion(SD)SD界面安装与使用SD Midjouney(MJ) 2、硬件与运行要求对比Stable Diffusion硬件要求内存硬盘显卡 Midjo…

Linux实现m4a格式转换为wav格式

需要在linux上安装ffmpeg 参考博客 Linux上安装ffmpeg修改环境变量【这一点很重要,自己因为没有添加环境变量,捣鼓了很长时间】 将ffmpeg的绝对路径添加到 PATH 环境变量中,以让系统能找到ffmpeg的安装路径。 # /home//project/ffmpeg-6.1-a…

Chrome/Edge 使用 Markdown Viewer 查看 Markdown 格式文件

Chrome/Edge 使用 Markdown Viewer 查看 Markdown 格式文件 0. 引言1. 安装 Markdown Viewer 插件2. 使用 Markdown Viewer 阅读 Markdown 格式文件 0. 引言 大部分程序员都喜欢 Markdown 格式的文件,这时给一些没有在电脑上安装 Markdown 编辑器的同事分享资料时&…

在 Code Review 中寻找什么?

当你审查别人的代码时,你会寻找什么? 无论你是通过像 Upsource 这样的工具来审查代码,还是在同事讲解他们代码的过程中进行审查,在任何情况下,有些事情都比其他事情更容易评论。比如: 格式:空…

PCA+DBO+DBSCN聚类,蜣螂优化算法DBO优化DBSCN聚类,适合学习,也适合发paper!

PCADBODBSCN聚类,蜣螂优化算法DBO优化DBSCN聚类,适合学习,也适合发paper! 一、蜣螂优化算法 摘要:受蜣螂滚球、跳舞、觅食、偷窃和繁殖等行为的启发,提出了一种新的基于种群的优化算法(Dung Beetle Optim…

zookeeper面试题

文章目录 ZooKeeper 是什么?ZooKeeper 提供什么?1. 文件系统2. 通知机制 ZooKeeper 文件系统四种类型的 znode1. PERSISTENT (持久化目录节点)2. PERSISTENT_SEQUENTIAL (持久化顺序编号目录节点)3. EPHEMERAL (临时目录节点)4. EPHEMERAL_SEQUENTIAL (临…

GIMP - GNU 图像处理程序 - 工具栏窗口 (Toolbox) 显示

GIMP - GNU 图像处理程序 - 工具栏窗口 [Toolbox] 显示 1. File -> Open2. GIMP 主面板里,右击弹出菜单 -> Tools -> New Toolbox3. Windows -> Dockable Dialogs -> Tool Options4. 工具选项拖动到工具箱里面5. Always On TopReferences GIMP 是跨平…

sqlite3嵌入式开发板命令行方式使用

如何在编译嵌入式版本的sqlite3,请看我上一篇文章 sqlite3 交叉编译-CSDN博客 一、sqlite3命令行方式使用 假如我将编译好的嵌入式的sqlite3放置在如下路径: 进入bin目录进行操作 1.运行sqlite3 运行sqlite3有两种方式 1)直接在内存里面…