数据库——安全性

智能2112杨阳

一、目的与要求:

1、设计用户子模式

2、根据实际需要创建用户角色用户,授权

3、针对不同级别的用户定义不同的视图,以保证系统的安全性

二、内容:

  1. 先创建四类用户角色

管理员角色Cusm客户角色Supp、供货商角色Admin、商家销售工作人员角色Salor

源码:

create role 'Cusm';

create role 'Supp';

create role 'Admin';

create role 'Salor';

  1. 创建客户视图、供货商视图

(1)客户视图要求显示所有客户号及对应客户下的所有订单及每个订单的价格

源码:

create view view_Supp as select customers.c_id,orders.o_num,orderitems.item_price from customers,orders,orderitems where customers.c_id=orders.c_id and orderitems.o_num=orders.o_num;

效果:

2供货商视图要求显示所有供货商号及供货商所供水果信息

源码:

create view view_Admin as select suppliers.s_id,fruits.f_id,fruits.f_name,fruits.f_price from suppliers,fruits where fruits.s_id=suppliers.s_id;

效果:

3.为以上四类用户角色授予合适的权限,要求:

(1)管理员拥有所有权限:

源码:

grant all on fruitshop.* to 'Cusm';

 

(2)客户只能查看与之相关的信息(基本信息,购买信息)

源码:

grant select on view_Supp to 'Supp';

(3)供货商只能查看与之相关的信息(可以查看自己供货的水果信息)。

源码:

grant select on view_Admin to 'Admin';

(4)商家销售工作人员可以查看数据库并录入信息,但不能修改、删除

源码:

      grant select,insert on fruitshop.* to 'Salor';

       

     

  1. 为每类用户角色至少创建一个用户(新建用户并分配对应的角色,统一设置初始密码为’123456’)

注意:附上源码,创建用户并授权成功后在交互式运行状态下查看每个用户权限并截图

客户用户:C001,任意主机地址,授权为客户角色的所有权限;

供货商用户:S001,任意主机地址,授权为供货商角色的所有权限;;

商家销售工作人员用户:B001,任意主机地址,授权为销售工作人员角色的所有权限;;

管理员用户:A001,本机,拥有所有权限

源码:

create user 'C001'@'%' identified by '123456';

grant Supp to 'C001';

create user 'S001'@'%' identified by '123456';

grant Admin to 'S001';

create user 'B001'@'%' identified by '123456';

grant Salor to 'B001';

create user 'A001'@'localhost' identified by '123456';

grant all on fruitshop.* to 'A001'@'localhost'

 

5.测试

退出已用root账号登陆的MySQL服务器,用这四类用户帐号分别登陆MySQL服务器并测试其功能(在交互式运行状态下测试,先附上测试源码,关键结果截图)。

测试要求:退出root帐号,重新登陆指定帐号,显示当前数据库中所有表,查看权限内某张表内的所有信息,权限内某张表进行增、删、改、查操作并查看能否正确执行这些操作,如果执行错误请说明导致此错误的原因。

注意:每次登录后先设置当前角色,否则无效果:set role 角色名;

测试客户用户:

mysql -uC001 -p123456;

set role Supp;

use fruitshop;

show tables;

slect* from `view_supp`;

update view_supp set c_address="第五社区",c_city="厦门",c_zip=111000,c_contact="cxr",c_email="123@678" where c_id=10000;

insert into view_supp values(01,"AAA","BBB","CCC",111,"123@321");

delete from view_supp.c_zip;

显示表:

Select操作:

Update操作:

原因:无权限

Insert操作:

原因:无权限

Delete操作:

原因:无权限

测试供货商用户:

mysql -uS001 -p123456

se role Admin;

use fruitshop;

show tables;

select* from `view_Admin`;

update view_Admin set s_city="Beijing",s_zip=111000,s_call=23333 where s_id=100;

insert into view_Admin values(01,"AAA","BBB",111,222);

delete from view_Admin.s_zip;

显示表:

Select操作:

Update操作:

原因:无权限

Insert操作:

原因:无权限

Delete操作:

原因:无权限

测试商家销售工作人员用户:

mysql -uB001 -p123456

set role Salor;

use fruitshop;

show tables;

select* from suppliers;

update suppliers SET s_name="Sariel",s_city="Shanghai",s_zip=520000,s_call=777777 where s_id=107;

insert into suppliers values(108,"Sariel","GQ City",520000,777777);

delete from suppliers.s_name;

显示表:

Select操作:

Update操作:

原因:无权限

Insert操作:

Delete操作:

原因:无权限

测试管理员用户:

mysql -uA001 -p123456

use fruitshop;

show tables;

select* from customers;

update customers set c_name="Evan",c_address="WZ Mall",c_city="Shenzhen",c_zip=521000,c_contact=666666,c_email="LU@666" where c_id=10003;

insert into customers values(10005,"Charlie","NOVATEN INC","GQ City",233333,555555,"love@sweety");

delete from customers where c_id=10000;

显示表:

Select操作:

Update操作:

Insert操作:

Delete操作:

原因:c_id具有外键约束

三、小结

1.遇到的问题及解决过程

a. 用户权限设置问题:通过创建视图,让用户获得部分对视图操作的权限

b. 用户账号切换问题:命令行quit退出,重新输入账号密码进行登录

c. 角色与用户权限问题:学习相关语法,让用户获得角色的权限

  1. 产生的错误及原因分析

    在测试用户的增删改查时,不能完成增删改查功能

    原因:未授权,c_id的相关语句具有外键约束

  1. 体会和收获。

通过本次博客,对数据库进行一些列操作,掌握参照完整性约束、设计用户子模式等功能,并且根据实际需要创建了不同的用户授以不同的权限,以此来针对不同级别的用户定义不同的视图,保证了系统的安全性。同时在这个过程中有遇到很多的问题与错误,但是都在不断的实验与互联网的帮助下解决了出现的问题与错误。感受到即使是表面上看上去很简单的题目,要去实践也会遇到很多不容易解决的问题与错误。总的来说收获满满。

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

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

相关文章

CF1898C Colorful Grid(构造)

题目链接 题目大意 n 行 m 列 的一个矩阵,每行有m - 1条边,每列有 n - 1 条边。 问一共走 k 条边,能不能从 (1, 1),走到(n, m),要求该路径上&am…

如何正确选择打造自己的私域流量知识付费平台,我有才知识付费saas平台告诉你!

在当今数字化时代,私域流量知识付费平台已经成为企业和个人获取收益、扩大影响力的重要渠道。但是,如何正确选择并打造一个属于自己的私域流量知识付费平台呢?我有才知识付费saas平台为你提供一站式解决方案! 一、功能全面&#…

Tomcat主配置文件(server.xml)详解

前言 Tomcat主配置文件(server.xml)是Tomcat服务器的主要配置文件,文件位置在conf目录下,它包含了Tomcat的全局配置信息,包括监听端口、虚拟主机、安全配置、连接器等。 目录 1 server.xml组件类别 2 组件介绍 3 se…

值类型相关函数与对象类型相关函数内存调用过程

值类型相关函数内存调用: 先来看这样一段代码,你认为它的运行结果是多少呢? 20和11还是20和10? package org.example;public class Main {public static void main(String[] args) {int a10;add(a);System.out.println(a);}pub…

在IDEA中创建Maven项目时没有src文件、不自动配置文件

错误示例: 没有src文件,并且没有自动下载相关的配置文件 对我这中情况无效的解决办法: ①配置好下列图中圈出来的文件 ②在VM选项中输入:“-DarchetypeInternal” ③点击应用,再点击确定 ④还是不行 解决办法&#x…

【八】python装饰器模式

文章目录 8.1 装饰器模式简介8.2 装饰器模式作用8.3 装饰器模式构成8.3.1 装饰器模式包含以下几个核心角色:8.3.2 UML类图 8.4 装饰器模式python代码实现8.4.1 基本装饰器的使用8.4.2 多个装饰器的执行顺序8.4.3 带返回值的装饰器的使用8.4.4 装饰器模式-关联类模式…

MySQL 8 update语句更新数据表里边的数据

数据重新补充 这里使用alter table Bookbought.bookuser add userage INT after userphone;为用户表bookuser在userphone列后边添加一个类型为INT的新列userage。 使用alter table Bookbought.bookuser add sex varchar(6) after userage ;为用户表bookuser在userage 列后边添…

低代码与MES:智能制造的新篇章

一、引言 随着工业4.0和智能制造的兴起,企业对于生产过程的数字化、智能化需求日益迫切。制造执行系统(MES)作为连接计划层与控制层的关键信息系统,在提升生产效率、优化资源配置、保障产品质量等方面发挥着重要作用。然而&#…

Nginx缓存及HTTPS配置小记

缓存基础 缓存分类 某些场景下,Nginx需要通过worker到上有服务中获取数据并将结果响应给客户端,在高并发场景下,我们完全可以将这些数据视为热点数据,并将其缓存到Nginx服务上。 客户端缓存:将缓存数据放到客户端。 …

uniapp实现地图电子围栏功能

该功能使用uniapp中内置组件map实现 效果图预览&#xff1a; 实现过程&#xff1a; 1.文档&#xff1a; 2.代码&#xff1a; <template><view><map :style"width: 100%; height:screenHeight" :latitude"latitude" :longitude"longit…

软件压力测试的重要性与用途

在当今数字化的时代&#xff0c;软件已经成为几乎所有行业不可或缺的一部分。随着软件应用规模的增加和用户数量的上升&#xff0c;软件的性能变得尤为关键。为了确保软件在面对高并发和大负载时仍然能够保持稳定性和可靠性&#xff0c;软件压力测试变得至关重要。下面是软件压…

smartKettle离线部署及问题记录

目录 &#x1f4da;第一章 前言&#x1f4d7;背景&#x1f4d7;目的&#x1f4d7;总体方向 &#x1f4da;第二章 部署&#x1f4d7;源码下载&#x1f4d7;后端部署&#x1f4d5;导入后端项目&#x1f4d5;修改settings.xml(自动下载相关jar包)&#x1f4d5; 编译&#x1f4d5; …

ky10 x86 一键安装wvp gb28181 pro平台

下载代码 git clone https://gitcode.net/zengliguang/ky10_x86_wvp_record_offline_install.gitfinalshell mobaxterm 修改服务器ip 查看服务器ip ip a 在脚本文件中修改服务器ip 执行安装脚本 切换到root用户 sudo su cd ky10_x86_wvp_record_of

3分钟,掌握“曲面屏显示屏”

在3分钟内掌握“曲面屏显示屏”的概念和特点&#xff0c;可以按照以下步骤进行&#xff1a; 一、了解曲面屏显示屏的基本概念 曲面屏显示屏是一种采用柔性塑料的显示屏&#xff0c;主要通过OLED面板来实现。相比直面屏幕&#xff0c;曲面屏幕弹性更好&#xff0c;不易破碎。此外…

Burpsuite插件-Brida

本文作者&#xff1a;杉木涂鸦智能安全实验室 通过一道CTF题目来认识一下Frida objection 前面两篇通过对Frida的了解&#xff0c;以及利用objection来分析&#xff0c;这篇来了解一下分析后实际利用&#xff0c;以及通过实现插件自动化的方式来利用。 Brida介绍 https://gi…

在 Node-RED 中引入 ECharts 实现数据可视化

Node-RED 提供了强大的可视化工具&#xff0c;而通过引入 ECharts 图表库&#xff0c;您可以更直观地呈现和分析数据。在这篇博客中&#xff0c;我们将介绍两种在 Node-RED 中实现数据可视化的方法&#xff1a;一种是引入本地 ECharts 库&#xff0c;另一种是直接使用 CDN&…

微软 Power Platform 零基础 Power Pages 网页搭建高阶实际案例实践(四)

微软 Power Platform 零基础 Power Pages 网页搭建教程之高阶案例实践学习&#xff08;四&#xff09; Power Pages 实际案例学习进阶 微软 Power Platform 零基础 Power Pages 网页搭建教程之高阶案例实践学习&#xff08;四&#xff09;1、新增视图&#xff0c;添加List页面2…

深度学习的目标检测算法综述

信息记录材料 2022年10月 第23卷第10期 【摘要】目标检测是深度学习的一个重要应用&#xff0c;目前在智能驾驶、工业检测相关领域都获得应用&#xff0c;具有重要的现实意义。本文对基于深度学习目标检测算法原理和应用情况进行简述&#xff0c;首先介绍结合区域提取和卷积神经…

Docker部署Nacos集群并用nginx反向代理负载均衡

首先找到Nacos官网给的Github仓库&#xff0c;里面有docker compose可以快速启动Nacos集群。 文章目录 一. 脚本概况二. 自定义修改1. example/cluster-hostname.yaml2. example/.env3. env/mysql.env4. env/nacos-hostname.env 三、运行四、nginx反向代理&#xff0c;负载均衡…

【C语言】RDMACM、Verbs API与epoll一起使用的示例

一、epoll介绍 epoll是Linux内核为处理大批量文件描述符而作了改进的poll&#xff0c;是Linux下多路复用IO接口select/poll的增强版本&#xff0c;它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。 以下是epoll的主要使用方法和优点&#xff1a; epo…