当前位置: 首页 > 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;可以让外部客户代…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...