mysql安全管理

数据库管理系统用于管理数据库服务器的各种数据库资源,MYSQL是一个支持多用户的数据库管理系统,实现多用户下,各种数据库资源的安全访问控制,确保数据库资源安全访问成为了数据库管理系统的核心功能。MYSQL安全管理是指允许合法账户访问合法数据库资源,并拒绝非法用户访问非法数据库资源。可以看出,MYSQL安全管理与MYSQL账户管理密不可分。

1.安全管理

假设用户拥有某些权限(update,delete等),MYSQL账户可以分为
MYSQL服务实例级别:可以修改MYSQL服务器上所有数据库所有表的记录
MYSQL数据库级别:可以修改某个数据库所有表的记录
MYSQL表级别:可以修改某个表的记录
另外还有MYSQL字段级别,以及MYSQL存储程序级别的账户。

2.MYSQL身份验证

mysql系统数据库记录了MYSQL的账户信息以及MYSQL账户的访问权限,进而实现了MYSQL账户的身份认证以及权限验证。
有关MYSQL账户的身份认证信息记录在mysql系统数据库中的user系统表中。
有关MYSQL服务实例级别账户的权限验证信息记录在db系统表中。
有关MYSQL表级别账户的权限验证信息记录在tables_priv系统表中。
有关MYSQL字段级别账户的权限验证信息记录在columns_priv系统表中。
有关MYSQL存储程序级别账户的权限验证信息记录在procs_priv系统表中。

3.MYSQL身份认证流程:

(1)在某台主机A上以root身份连接MYSQL服务器,这个过程是root账户的身份认证。
(2)root账户具有至高无上的权限,包括grant权限。root账户在命令提示符窗口A执行grant命令,创建MYSQL账户B,并为该账户绑定相应的资源访问权限。
(3)在某台合法登录主机B上打开命令提示符窗口B,以MYSQL账户B的身份链接MYSQL服务器。这个过程称为MYSQL账户B的身份认证。
(4)MYSQL账户B在命令提示符窗口B上执行MYSQL命令或者SQL语句,这些MYSQL命令或者SQL语句在执行前必须经过权限验证,判断MYSQL账户B是否具有权力执行该MYSQL命令或者语句。权限验证一旦通过,该账户则可以访问相应的数据库资源,否则MYSQL服务实例拒绝MYSQL账户B的资源访问。

4.MYSQL账户与权限表

MYSQL身份认证时,需要提供账户名,密码以及登陆主机IP地址信息。
MYSQL安全管理通过权限表实现MYSQL账户的身份认证以及权限验证,这些权限表存储引擎全部是MYISAM,主键全部为复合主键,字符集全部是UTF8,字符序全部是utf8_bin。
权限表主要包含两类字段:作用域字段和权限类型字段。作用域字段构成了各个权限表的主键,记录了该账户可以访问的数据库资源。权限类型字段定义了MYSQL账户对指定的数据库资源可以进行何种类型的访问。
(1)grant命令
格式:
grant 权限名称[(字段列表)]
[权限名称[(字段列表)]]…
on [(数据库资源类型)] 数据库资源
to MYSQL账户1 [, MYSQL账户2] …
[with grant option]
说明:数据库资源可以是*.*,db_name.*,db_name.table_name以及db_name.routine_name,分别表时MYSQL服务实例,MYSQL数据库,MYSQL数据库表以及MYSQL数据库的存储过程或者函数。
MYSQL账户包括账户名,密码以及登录主机等信息,而with grant option是赋予grant权限
(2)创建MYSQL服务实例级别的账户
grant all privileges on *.* to ‘server_user’@‘%’ identified by ‘password’;
创建账户名为“server_user”,密码为password,‘%’表示任何主机都可以连接,并且*.*表示所有数据库的所有数据库对象,all privileges表示该账户拥有所有权限(grant权限除外)。
(3)创建MYSQL数据库级别的账户
grant all privileges on choose.* to ‘database_user’@‘192.168.1.%’ identified by ‘password’ with grant option;
(4)创建表级别的账户
grant all privileges on table choose.choose to ‘table_user’@‘%’ identified by ‘password’ with grant option;
(5)创建字段级别的账户(假设表choose上的score字段)
grant select(score), insert(score) on table choose.choose to ‘column_user’@‘%’ identified by ‘password’;
(6)创建存储程序级别的账户
账户仅仅拥有choose数据库存储过程get_student_course_proc()与函数to_chinese_fn()的执行权限。
grant execute on procedure choose.get_student_course_proc to ‘%’@‘192.168.1.103’ identified by ‘password’;

5.账户管理

(1)创建账户
create user ‘user1’@‘localhost’ identified by ‘password’;
(2)查看账户信息
show grants for ‘user’@‘%’;
(3)删除账户
drop user ‘table_user’@‘%’;
(4)修改已有账户的信息
使用grant命令操作已有的账户,可以向已有的账户增加权限,修改已有帐户的密码。
使用revoke命令可以撤销已有账户的已有权限:
例如:revoke select on choose.* from ‘admin_user’@‘%’;
(5)已有账户的重命名
rename user old_user to new_user
(6)修改账户密码
set password [for user] = password(‘新密码’);
(7)使用更新语句后,还需要执行“flush privileges”或者重启mysql才能生效。

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

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

相关文章

QT中常用的类

Qt 是一个功能强大的跨平台框架,提供了丰富的类库来开发 GUI 和应用程序。以下是 ​​Qt 中常用的核心类​​,按模块分类整理: ​​1. GUI 和窗口管理​​ 类名用途示例场景​​QWidget​​所有 GUI 控件的基类(按钮、窗口等&…

【Redis原理篇】五大基本数据类型的底层编码方式

上文:redis底层数据结构 String底层结构 一、编码方式 1.int编码 **适用范围:**64位整数(long) **实现:**直接将数据存储在redisObject的ptr指针位置。 内存布局: 2.embstr编码 **适用条件&#xf…

自动编码器 潜在空间 Autoencoders 视频截图

【双语】Autoencoders_哔哩哔哩_bilibili 【双语】Autoencoders_哔哩哔哩_bilibili

ZLG USBCANFD python UDS刷写脚本

文章目录 概述python UDS 刷写脚本UI交互界面概述 在实际工作中,有使用周立功的UDSCANFD设备,用来收发CAN数据和UDS on CAN的诊断测试或者UDS on CAN的ECU升级。上位机使用ZCANPro,软件自带ECU刷新界面,可以编辑UDS服务,加载升级文件等,能用是能用,但是仍不能满足一些特…

线程安全问题的成因

前言 大家晚上好呀~~ 今天学习了线程不安全问题的成因。线程安全问题是十分重要的知识点,我想把我所学的与大家分享一波,希望可以帮助到有需要的人,同时加深自己对于线程安全问题的理解。 分析过程如下 结语 今天心情还不错~ 要坚持持续…

C++可变参数宏定义语法笔记

1. 基础语法 定义格式: #define MACRO_NAME(fixed_args, ...) macro_body#define LOG(fmt, ...) printf(fmt, __VA_ARGS__) LOG("Value: %d, Name: %s", 42, "Alice"); // 展开为 printf("Value: %d, Name: %s", 42, "Alice&q…

mongodb安装启动

这里写自定义目录标题 安装包下载安装后文件目录列表bin目录下 mongod 可以对mongodb 进行启动等操作 环境变量配置创建数据目录,日志目录启动参数配置启动 mongodbweb页面访问,检查服务启动是否正常可视化工具连接mongodb创建 database创建collection查…

Leetcode 3562. Maximum Profit from Trading Stocks with Discounts

Leetcode 3562. Maximum Profit from Trading Stocks with Discounts 1. 解题思路2. 代码实现 题目链接:3562. Maximum Profit from Trading Stocks with Discounts 1. 解题思路 这一题没有搞定,思路上整体走偏了,看了一下别人的解答&…

【Redis】第2节|Redis基本数据类型

一、基础数据结构 1. String(字符串) 特点:二进制安全,支持字符串、数值存储,原子性操作。核心操作: SET key value # 存储键值对 GET key # 获取值 INCR key # 数值…

用matlab提取abaqus odb文件中的节点信息

在MATLAB中提取Abaqus ODB文件中的节点信息,可以通过以下几种方法实现: 方法1:使用MATLAB的ABAQUS Interface工具箱 https://wenku.csdn.net/answer/77axwtqnys 可以参考这个 MATLAB的ABAQUS Interface工具箱提供了直接读取ODB文件的功能。…

【Java】异常处理

1.异常的概念 在程序运行时,打断正常程序流程的不正常情况分两类: 1.错误(Error):应用程序无法捕获的严重问题(自己无法处理) 例: 虚拟机相关的问题,如虚拟机崩溃、动态链接失败、低层资源错误等 总是不受编译器检查的&#xff0…

Linux(Centos 7.6)命令详解:tar

1.命令作用 命令tar将许多文件一起保存到单个磁带或磁盘存档中,并且可以从存档中恢复单个文件(GNU tar saves many files together into a single tape or disk archive, and can restore individual files from the archive.)。 2.命令语法 Usage: tar [OPTION.…

企业网络综合实训

企业网络综合实训 任务描述: 公司的中心机房、办公区一和办公区二位于同一园区。要求各大楼之间要互通,并且均能访问Internet;同时公司业务需要对外拓展,需要在Internet数据中心机房部署一台对外提供DNS和Web站点服务的服务器。…

8天Python从入门到精通【itheima】-41~44

目录 41节-while循环的嵌套应用 1.学习目标 2.while循环的伪代码和生活情境中的应用 3.图片应用的代码案例 4.代码实例【Patrick自己亲手写的】: 5.whlie嵌套循环的注意点 6.小节总结 42节-while循环的嵌套案例-九九乘法表 1.补充知识-print的不换行 2.补充…

探索Linux互斥:线程安全与资源共享

个人主页:chian-ocean 文章专栏-Linux 前言: 互斥是并发编程中避免竞争条件和保护共享资源的核心技术。通过使用锁或信号量等机制,能够确保多线程或多进程环境下对共享资源的安全访问,避免数据不一致、死锁等问题。 竞争条件 竞…

《Stable Diffusion 3.0企业级落地指南》——技术赋能与商业价值的深度融合实践

Stable Diffusion 3.0(SD3)作为当前多模态生成式AI技术的集大成者,凭借其创新的扩散Transformer架构(DiT)、流匹配(Flow Matching)技术以及超分辨率生成能力,正在重塑企业内容生产的…

基于本地模型+多级校验设计的高效缓存,有效节省token数量(有点鸡肋doge)。

前言 我是基于token有限而考虑的一个省钱方案,还能够快速返回结果,但是劣势也很明显,设计不好容易出问题,就如下面所介绍的语义飘逸和缓存污染,我认为在自己学习大模型的过程用来省钱非常可以,再加上学习过…

网络安全全知识图谱:威胁、防护、管理与发展趋势详解

1 网络安全基础概念 1.1 什么是网络安全 网络安全是指通过技术、管理和法律等手段,保护计算机网络系统中的硬件、软件及其系统中的数据,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,确保系统连续可靠正常地运行,网络服务不…

远控安全进阶之战:TeamViewer/ToDesk/向日葵设备安全策略对比

【作者主页】Francek Chen 【文章摘要】在数字化时代,卓越的远程控制软件需兼顾功能与体验,包括流畅连接、高清画质、低门槛UI设计、毫秒级延迟及多功能性,同时要有独树一帜的远控安全技术,通过前瞻性安全策略阻挡网络风险&#x…

Steam发布游戏过程的若干问题

我没有想到在Steam发布游戏的过程会比做游戏的过程更困难,更恶心。 注册Steamworks 税务采访 税务采访部分填的地址要和后面它们要求你发证件照片里的地址一样。护照里因为没有地址不会通过,我用的驾照里面有地址。没有驾照可以用身份证。 应用准备界…