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

news2024/12/28 19:24:34

信息系统工程领域对数据安全的要求比较高,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 所示。

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

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

相关文章

vscode连接远程Linux服务器

文章目录 一、环境安装1.1 下载vscode1.2 下载vscode-sever 二、ssh链接2.1 安装Remote-SSH2.2 设置vscode ssh2.3 设置免密登录2.3.1 本地生成公私钥2.3.2 服务器端添加公钥 三、安装插件3.1 vscode安装插件3.1.1 在线安装插件3.1.2.1 下载插件3.1.2.2 安装插件 3.2 vscode-se…

SQL注入实操三(SQLilabs Less41-65)

文章目录 一、sqli-labs靶场1.轮子模式总结2.Less-41 stacked Query Intiger type blinda.注入点判断b.轮子测试c.获取数据库名称d.堆叠注入e.堆叠注入外带注入获取表名f.堆叠注入外带注入获取列名g.堆叠注入外带注入获取表内数据 3.Less-42 Stacked Query error baseda.注入点…

小学语文思维导图:如何写一篇好的作文

大家都知道,思维导图是一款非常高效的工具。我们利用思维导图不仅可以做读书笔记、还可以运用到很多具体细分的场景。今天我们就“如何利用思维导图写好一篇作文”和大家进行分享。 思维导图在写作文的过程中,可以帮助我们整理思路。提高效率。将混乱的内…

排序八卦炉之总复习

文章目录 1.总代码1.1Stack.h1.2Stack.c1.3Sort.h1.4Sort.c1.5Test.c 2.总结 1.总代码 点击 排序&#xff08;C&#xff09; 跳转码云获取完整代码 1.1Stack.h #pragma once #include <stdio.h> #include <assert.h> #include <stdlib.h> #include <st…

web前端html

文章目录 快捷方式一、html5的声明二、html5基本骨架 2.1 html标签 2.2 head标签 2.3 body和head同级 2.4 body标签 2.5 title标签 2.6 meta标签 三、标题标签介绍与应用 3.1 标题的介绍 3.2 标题标签位置摆放 3.3 标签之段落、换行、水平线 3.3 标签之图片 3.3.1 图…

【快应用】list组件如何区分滑动的方向?

【关键词】 list组件、滑动方向、scroll 【问题背景】 有cp反馈list这个组件在使用的时候&#xff0c;不知道如何区分它是上滑还是下滑。 【问题分析】 list组件除了通用事件之外&#xff0c;还提供了scroll、scrollbottom、scrolltop、scrollend、scrolltouchup事件&#x…

Spark官方调优三部曲之三:其它优化思路

前言 前面介绍了关于spark性能调优两个最重要的点: 数据序列化内存调优这两个方向都进行调优后,如果想进一步继续优化你的程序,可以参考下面的思路。 设置合理的并行度 除非将每个操作的并行级别设置得足够高,否则集群资源不会得到充分利用。Spark根据每个文件的大小自动…

【5G NR】逻辑信道、传输信道和物理信道的映射关系

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

微信开发之朋友圈自动点赞的技术实现

简要描述&#xff1a; 朋友圈点赞 请求URL&#xff1a; http://域名地址/snsPraise 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wId…

WSL安装

WSL安装 1.Microsoft store 安装 1.1 启动WSL功能 在【程序和功能 -> 启用或关闭 Windows 功能】中勾选【适用于 Linux 的 Windows 子系统】 1.2 Store中下载安装 在 Microsoft Store 中下载并安装需要的 Linux 发行版 2.不使用Store安装WSL 注&#xff1a;1.1也要…

Nios初体验之——Hello world!

文章目录 前言一、系统设计1、系统模块框图2、系统涉及到的模块1、时钟2、nios2_qsys3、片内存储&#xff08;onchip_rom、onchip_ram&#xff09;4、串行通信&#xff08;jtag_uart&#xff09;5、System ID&#xff08;sysid_qsys&#xff09; 二、硬件设计1、创建Qsys2、重命…

vue中vue-lazyload报错

1.问题&#xff1a; 说明&#xff1a;也就是版本不兼容&#xff0c;我安装的是vue2,因此需要 "vue-lazyload": "^1.2.6"或者更低 2.解决 npm i vue-lazyload1.2.6

第二季“数字强市建设体验团”活动感悟-张继群

目录 第二季“数字强市建设体验团”活动感悟-张继群 第二季“数字强市建设体验团”活动感悟-张继群 此次参观中山东安信木业、费县智慧城市运营中心、澳柯玛以及沂南双创科技园区给我留下深刻印象&#xff0c;我深深地感受到了现代科技与生活的紧密联系。我们临沂市智慧大数据…

js-3:DOM常见的操作有哪些?

1、DOM 文档对象模型&#xff08;DOM&#xff09;是HTML和XML文档的编程接口。 它提供了对文档的结构化的表述&#xff0c;并定义了一种方式&#xff0c;可以使从程序中对该结构进行访问&#xff0c;从而改变文档的结构&#xff0c;样式跟内容。 任何HTML和XML文档都可以用DOM表…

自然语言处理学习笔记(五)————切分算法

目录 1.切分算法 2.完全切分 3.正向最长匹配 4.逆向最长匹配 5.双向最长匹配 6.速度评测 1.切分算法 词典确定后&#xff0c;句子可能含有很多词典中的词语&#xff0c;他们有可能互相重叠&#xff0c;如何切分需要一些规则。常用规则为&#xff1a;正向匹配算法、逆向匹…

opencv基础44- Canny边缘检测详解-cv.Canny()

什么是Canny边缘检测&#xff1f; Canny边缘检测是一种经典的边缘检测算法&#xff0c;由John F. Canny在1986年提出。它被广泛应用于计算机视觉和图像处理领域&#xff0c;是一种多阶段的边缘检测算法&#xff0c;能够有效地检测图像中的边缘并抑制噪声。 Canny边缘检测的主要…

APP外包开发的学习流程

学习iOS App的开发是一项有趣和富有挑战性的任务&#xff0c;是一个不断学习和不断进步的过程。掌握基础知识后&#xff0c;不断实践和尝试新的项目将使您的技能不断提升。下面和大家分享一些建议&#xff0c;可以帮助您开始学习iOS App的开发。北京木奇移动技术有限公司&#…

Redis 拒绝服务漏洞(CVE-2023-28856)修复处理

一、漏洞描述 Redis Labs Redis是美国Redis Labs公司的一套开源的使用ANSI C编写、支持网络、可基于内存亦可持久化的日志型、键值&#xff08;Key-Value&#xff09;存储数据库&#xff0c;并提供多种语言的API。 Redis 7.0.0 到 7.0.10版本、6.2.0 到 6.2.11版本、6.0.0 到 …

【Linux】【预】配置网络IP,挂载网络目录

【Linux】【预】配置网络IP&#xff0c;挂载网络目录 1. 配置查看IP2.配置Linux中的IP3. 串口连接开发板&#xff0c;配置 1. 配置查看IP a . 查看ipifconfig如下操作&#xff0c;其中的&#xff1a;192.168.252.140就是它的IP b . 使用xmodem 连接到虚拟机&#xff0c;最后点…

P1396 营救(最小生成树)(内附封面)

营救 题目背景 “咚咚咚……”“查水表&#xff01;”原来是查水表来了&#xff0c;现在哪里找这么热心上门的查表员啊&#xff01;小明感动得热泪盈眶&#xff0c;开起了门…… 题目描述 妈妈下班回家&#xff0c;街坊邻居说小明被一群陌生人强行押上了警车&#xff01;妈…