当前位置: 首页 > news >正文

小研究 - 基于 MySQL 数据库的数据安全应用设计(一)

信息系统工程领域对数据安全的要求比较高,MySQL 数据库管理系统普遍应用于各种信息系统应用软件的开发之中,而角色与权限设计不仅关乎数据库中数据保密性的性能高低,也关系到用户使用数据库的最低要求。在对数据库的安全性进行设计时,为了保证数据的安全性和可靠性,提出通过设置角色和权限实现对数据的安全访问,然后通过编写代码进行实验,以验证此方式解决数据库中数据安全问题的有效性。

目录

1 存放用户账户的权限表

2 账户和账户权限设计

2.1 从 Windows 命令行登录到 MySQL 数据库中

2.2 创建用户并赋予权限


在当今大数据时代,各行各业都离不开计算机信息技术,特别是利用信息系统应用软件对业务进行处理,系统后台会存放大量数据,这也使得数据变得越来越重要,而作为数据的主要存储器之一的数据库管理系统就承担起了保护数据的重要角色。在开发信息系统过程中,对数据库中数据的安全设计必须给予重视,才能提高数据的安全性。

目前主流的数据库管理系统有 Oracle、SQL Server、MySQL等,任何一个数据库都要考虑数据安全方面的设计,此文以 MySQL 数据库管理系统为例对数据安全进行论述,其中一类安全问题是指数据库中敏感数据被多个合法用户查询获取,在使用过程中发生泄密事故或恶意篡改,数据库管理员需要追踪和熟悉哪些用户曾访问数据以及这些用户的访问权限和操作,用于解决相关事故责任。

对数据库中存放的关键数据,基本上都有保密要求,即限制部分用户对数据的访问,在访问的过程中也会限制用户的访问权限,不同用户根据角色的不同,管理员要设置不同的访问权限,以保证数据库中数据的安全。

1 存放用户账户的权限表

为了方便管理员管理用户,需要为众多用户设置账户和访问权限,同时为了方便管理,数据库管理系统设置了重要的表存放账户和权限,在 MySQL 数据库中与用户及权限相关的表主要有 4 个,即 user 表、db 表、tables_priv 表和columns_priv 表。

user 表是最重要的表,包含用户、权限、安全和资源控制 4 类共计 42 个字段,用户包含用户名、主机名和密码。权限共计 29 个,以 _priv 结尾,例如 update_priv 等。针对user 表,里面存放全局级的权限。

db 表是非常重要的表之一,存放为用户指定的某个或某些数据库的操作权限。仅存放用户名、主机名及权限。针对 db 表,里面存放数据库级的权限。

tables_priv 表,用于存放固定数据库下的一个表和多个表的用户和用户权限信息。

columns_priv表,用于存放固定数据库下固定表的一列或多列的用户和用户权限信息。

4 个表均存放用户和权限,具体区别见如表 1 所示。

2 账户和账户权限设计

在 MySQL 数据库管理系统下,账户的创建和验证与其他数据库管理系统有所不同,在单机系统中,为了能够进行验证,数据库设计时,需要在 Windows 命令行下登录才能够进行验证。

2.1 从 Windows 命令行登录到 MySQL 数据库中

登录过程如下:开始—运行—输入cmd,进入Windows命令行 -- 输入参数,即登录命令(MySQL–u 用户名 –h 主机名 –p 密码),第一次登录创建用户账户需要超级管理员root 用户进行登录。

注意事项:登录命令如果执行,必须切换到 MySQL 的安装文件 bin 目录下,因为很多用户在安装 MySQL 时,并没有配置 path 变量,此时,Windows 命令行无法识别命名,所以无法执行。例如C:\Users\Administrator>mysql -u root -hlocalhost–p,错误提示:“mysql”不是内部或外部命令,也不是可运行的程序或批处理文件。

另外,如果 MySQL 服务器未开启,也会显示命令无效,所以也必须保证数据库服务器处于开启的状态。下面是以超级管理员进入 MySQL 数据库管理系统,在第一次创建用户的时候,仅有 root 超级管理员才有权限创建其他用户,输入密码便可以登录到 MySQL 数据库命令行。登录过程如图 1所示。

输入密码,即可进入 MySQL 命令行。代码为:

        c:\wamp\bin\mysql\mysql5.5.24\bin>mysql -u root -hlocalhost -p
        Enter password:-- 此处输入密码,后面出现 MySQL 的欢迎界面和连接所花费的时间等。
        mysql>-- 最终以此命令符出现,此时光标会在 mysql>后面停留,等待输入命令。

2.2 创建用户并赋予权限

在 MySQL 数据库管理系统下,在此建立一个数据库 b和数据库a,在数据库b下建立一个数据表book,并在book数据表中设计一个整型字段 bid 代表图书编号,可以输入一条记录为 1,为了进行验证,再建立一个 book2 数据表,字段和记录可以随意设计,在此利用简单的数据表展示创建用
户账户并赋予权限的过程。部分代码为:

        Create database a;
        Create database b;
        create table book(bidint);
        insert into book values(1);
        create table book2(bidint,bname char(4));

下面设计第一个用户 a1,密码为:test1,此用户的权限设计为仅能操作数据库 b,利用如下格式设计代码,即利用 grant 创建新用户,并赋予权限,语法规则:Grant 权限类型 on 数据库 . 数据表 to 用户名 @ 主机名 identifiedby password[,user@host identified by password][with grantoption]。注意:权限类型表示赋予用户的权限类型(例如:select、alter、reload、excute、event 等),数据库 . 数据表代表权限的级别,一个 * 代表当前数据库中的所有表,*.*代表所有数据库下的所有表,db_name.* 代表固定数据库中的所有表,db_name.tbl_name代表固定数据库中的固定表和视图,db_name.routine_name代表固定数据库中的固定存储过程和函数,user@host 代表用户名和主机名,password 代表密码,而[with grant option] ]则代表该用户可以对其他用户赋予权限,其他命令为固定写法。此代码为:

        grant all on b.* to'a1'@'localhost'identified by'test1';

具体代码即执行过程如图 2 所示。

下面设计第二个用户 a2,密码为:test2,设计权限为仅能查看数据库 b 下的 book 表,此代码为:
        grant select on b.book to'a2'@'localhost'identified by'test2';

具体代码即执行过程如图 3 所示。

相关文章:

小研究 - 基于 MySQL 数据库的数据安全应用设计(一)

信息系统工程领域对数据安全的要求比较高,MySQL 数据库管理系统普遍应用于各种信息系统应用软件的开发之中,而角色与权限设计不仅关乎数据库中数据保密性的性能高低,也关系到用户使用数据库的最低要求。在对数据库的安全性进行设计时&#xf…...

mysql转sqlite3

在项目中需要将mysql迁移到sqlite3中,此时需要作数据转换 准备工作 下载mysql2sqlite转换工具 https://github.com/dumblob/mysql2sqlite/archive/refs/heads/master.zip 下载sqlite3 https://www.sqlite.org/download.html 转换 命令行中输入如下命令 1、cd …...

在linux中使用 ./configure 时报错

./configure --build编译平台 --host运行平台 --target目标平台 1. configure: error: cannot guess build type; you must specify one 解决办法:指定编译平台 ./configure --buildarm 2. configure: error: Either a previously installed…...

【LeetCode 算法】Reverse String 反转字符串

文章目录 Reverse String 反转字符串问题描述:分析代码双指针 Tag Reverse String 反转字符串 问题描述: 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c…...

linux sysctl.conf 常用参数配置

kernel.sysrq 0 kernel.core_uses_pid 1 kernel.msgmnb 65536#默认为16384,调高 kernel.msgmax 65536#默认为16384,调高 kernel.shmmax 68719476736#以sctl -a实际查询出的为准 kernel.shmall 4294967296#以sctl -a实际查询出的为准 net.ipv4.ip_f…...

【stm32】初识stm32—stm32环境的搭建

文章目录 🛸stm32资料分享🍔stm32是什么🎄具体过程🏳️‍🌈安装驱动🎈1🎈2 🏳️‍🌈建立Start文件夹 🛸stm32资料分享 我用夸克网盘分享了「STM32入门教程资料…...

Spring Boot3.0基础篇(二):Web 开发

Web 开发 Spring Boot Web 开发非常的简单,其中包括常用的 json 输出、filters、property、log 等 json 接口开发 在以前使用 Spring 开发项目,需要提供 json 接口时需要做哪些配置呢 添加 jackjson 等相关 jar 包配置 Spring Controller 扫描对接的方…...

【WebRTC---源码篇】(三:一)音频轨

音频轨的创建时序在Conductor::AddTracks()中 rtc::scoped_refptr<webrtc::AudioTrackInterface> audio_track(peer_connection_factory_->CreateAudioTrack(kAudioLabel, peer_connection_factory_->CreateAudioSource(cricket::AudioOptions()))); 通过代码我们…...

POM文件总体配置详细说明

今天跑一个项目&#xff0c;报错显示他的pom文件有问题&#xff0c;需要一个标准的pom文件对比&#xff0c;希望能帮到各位&#xff01; <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" …...

【项目 计网3】Socket介绍 4.9字节序 4.10字节序转换函数

文章目录 4.8 Socket介绍4.9字节序简介字节序举例 4.10字节序转换函数 4.8 Socket介绍 所谓 socket&#xff08;套接字&#xff09;&#xff0c;就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端&#xff0c;提供了应用层进…...

Spring Security 和 Apache Shiro 登录安全架构选型

Spring Security和Apache Shiro都是广泛使用的Java安全框架&#xff0c;它们都提供了许多功能来保护应用程序的安全性&#xff0c;包括身份验证、授权、加密、会话管理等。 Spring Security和Apache Shiro都是非常常用的登录安全框架,两者在登录安全架构的选型上各有特点: Sp…...

如何恢复已删除的 PDF 文件 - Windows 11、10

在传输数据或共享专业文档时&#xff0c;大多数人依赖PDF文件格式&#xff0c;但很少知道如何恢复意外删除或丢失的PDF文件。这篇文章旨在解释如何有效地恢复 PDF 文件。如果您身边有合适的数据恢复工具&#xff0c;PDF 恢复并不像看起来那么复杂。 便携式文档格式&#xff08…...

服务器数据恢复-raid5同步过程中又有一块磁盘报警的数据恢复案例

服务器数据恢复环境&#xff1a; 某研究院一台DELL存储&#xff0c;15块硬盘搭建的一组RAID5磁盘阵列。 该RAID5阵列只有一个卷组&#xff0c;该卷组占用了阵列的全部空间&#xff1b;该卷组只有一个起始位置为0扇区的XFS裸分区。 服务器故障&初检&分析&#xff1a; 该…...

解密Redis:应对面试中的缓存相关问题2

面试官&#xff1a;Redis集群有哪些方案&#xff0c;知道嘛&#xff1f; 候选人&#xff1a;嗯~~&#xff0c;在Redis中提供的集群方案总共有三种&#xff1a;主从复制、哨兵模式、Redis分片集群。 面试官&#xff1a;那你来介绍一下主从同步。 候选人&#xff1a;嗯&#xff…...

HTTP——八、确认访问用户身份的认证

HTTP 一、何为认证二、BASIC认证BASIC认证的认证步骤 三、DIGEST认证DIGEST认证的认证步骤 四、SSL客户端认证1、SSL 客户端认证的认证步骤2、SSL 客户端认证采用双因素认证3、SSL 客户端认证必要的费用 五、基于表单认证1、认证多半为基于表单认证2、Session 管理及 Cookie 应…...

解决word打字卡顿问题的方法

❤ 2023.8.5 ❤ 最近整理论文&#xff0c;本来我是wps死忠粉&#xff0c;奈何wps不支持latex公式。。。 无奈用起了word&#xff0c;但是谁想字数稍微多了一点&#xff0c;word就卡得欲仙欲死&#xff0c;打个字过去2s才显示出来&#xff0c;删除的时候都不知道自己删了几个字…...

python elasticsearch update by query

创建索引以及添加数据 PUT test {"mappings": {"properties": {"test":{"type": "nested"}} }}GET test/_mappingPUT test/_doc/1 {"test":{"name":"ellis","age":100} }elastics…...

Linux搭建pikachu靶场(以centos为例)

Linux搭建pikachu靶场 Pikachu是一个使用PHP语言编写的Web漏洞测试靶场。下面是在CentOS 7上安装Pikachu靶场的步骤&#xff1a; 安装LAMP (Linux, Apache, MySQL, PHP) 堆栈&#xff1a; 首先&#xff0c;需要在CentOS 7服务器上安装LAMP堆栈。 安装Apache&#xff1a; yum i…...

git clone 登录 github

git clone 登录 github 目录概述需求&#xff1a; 设计思路实现思路分析1.github 设置setting2.输入passwd 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result…...

迭代器模式(C++)

定义 提供一种方法顺序访问一个聚合对象中的各个元素&#xff0c;而又不暴露(稳定)该对象的内部表示。 应用场景 在软件构建过程中&#xff0c;集合对象内部结构常常变化各异。但对于这些集合对象&#xff0c;我们希望在不暴露其内部结构的同时&#xff0c;可以让外部客户代…...

量化交易回测工具革新:backtrader-pyqt-ui让策略开发效率提升10倍的实践指南

量化交易回测工具革新&#xff1a;backtrader-pyqt-ui让策略开发效率提升10倍的实践指南 【免费下载链接】backtrader-pyqt-ui 项目地址: https://gitcode.com/gh_mirrors/bac/backtrader-pyqt-ui backtrader-pyqt-ui是一款将Backtrader量化回测引擎与PyQt图形界面完美…...

k6:现代性能测试工具的新标杆

本人已经有几年不接触性能测试了&#xff0c;近些年一直是在从事功能和操作系统的自动化测试工作&#xff0c;现在回头看以前所专注的性能测试工具&#xff0c;感觉是有点跟不上时代了&#xff0c;在网上无意中发现一款比较火的工具k6&#xff0c;我也不知道这工具是哪年冒出来…...

网络性能诊断与优化:开源测试工具从入门到精通

网络性能诊断与优化&#xff1a;开源测试工具从入门到精通 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds 网络性能问题常常隐藏在复杂的架构背后&a…...

掌握Agentic RAG:大模型检索进阶实践,小白也能轻松收藏学习!

掌握Agentic RAG&#xff1a;大模型检索进阶实践&#xff0c;小白也能轻松收藏学习&#xff01; 本文深入解析了Agentic RAG架构如何通过智能代理能力、动态任务规划和多步骤推理&#xff0c;超越传统RAG的被动模式&#xff0c;实现复杂问题的自主拆解与精准回答。以DeepSearch…...

像素时装锻造坊应用场景:NFT项目像素角色皮肤的批量生成方案

像素时装锻造坊应用场景&#xff1a;NFT项目像素角色皮肤的批量生成方案 1. 项目背景与核心价值 像素时装锻造坊&#xff08;Pixel Fashion Atelier&#xff09;是一款专为NFT项目设计的像素角色皮肤批量生成工具。它基于Stable Diffusion与Anything-v5技术栈&#xff0c;将传…...

无需会员!本地工具如何让城通网盘下载速度提升20倍

无需会员&#xff01;本地工具如何让城通网盘下载速度提升20倍 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否也曾在下载重要文件时&#xff0c;看着浏览器进度条龟速前进而心急如焚&#xff1f…...

G-Helper深度解析:轻量级华硕性能控制替代方案革新实践指南

G-Helper深度解析&#xff1a;轻量级华硕性能控制替代方案革新实践指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Stri…...

别再死记硬背了!用‘四体交叉’和‘双端口RAM’的实战题目,彻底搞懂计算机组成原理的存储器提速

从四体交叉到双端口RAM&#xff1a;用实战思维破解存储器提速难题 计算机组成原理中那些晦涩的存储器提速概念&#xff0c;是否总让你在题海中迷失方向&#xff1f;当"单体多字"、"多体并行"、"四体交叉"这些术语在教材里冰冷排列时&#xff0c;…...

如何快速使用网盘直链下载助手:告别限速困扰的完整指南

如何快速使用网盘直链下载助手&#xff1a;告别限速困扰的完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

解决多显示器显示错乱难题:SetDPI带来的视觉一致性变革

解决多显示器显示错乱难题&#xff1a;SetDPI带来的视觉一致性变革 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 问题诊断&#xff1a;当多显示器成为工作障碍 为什么专业人士的多屏工作站反而降低效率&#xff1f;摄影师小林的修图软…...