数据库SQL Server实验报告 之 SQL数据库的安全性(7/8)

news2024/11/27 5:30:11

实验名称                                           数据库的安全性实验

注意:原版word在下载资源里面(免费下载)

实验目的及要求:

  1. 使学生加深对数据库安全性和完整性的理解。
  2. 掌握SQL Server中有关用户、角色及操作权限的管理方法。
  1. 数据库的安全性实验,在SQL Server企业管理器中,设置SQL Server的安全认证模式。
  2. 实现对SQL Server的用户和角色管理。
  3. 设置和管理数据操作权限。

实验内容及步骤:

1.首先设置能够以“SQL SERVER身份登录”,以Sa登录名进去,密码设置成“sa123”

2.再创建三个以SQL Server身份验证的登录名,登录名分别为login1、login2和login3,密码分别为“111”、“222”和“333”

create login login1 with password='111';

create login login2 with password='222';

create login login3 with password='333';

3.分别为三个登录名在“XSGL”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“XSGL”数据库。 

use XSGL

create user Tom

for login login1;

create user Mary

for login login2;

create user  John

for login login3;

4.授予用户John创建表和视图的权限。 

grant create table,create view

to John;

--exec  sp_addrolemember  'db_owner',' John'

5.然后以login3登录名进去创建一个新表和一个新的视图进行验证。

创建新表

create table a

( a int);

创建视图

create view b(sno,sname)

as select sno,sname

from student

  1. 把对表student的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户,设置完成进行验证。 

grant insert

on student

to Tom

with grant option

  1. 用户Mary对Student,course,sc三个表有SELECT和INSERT权力 ,进行验证。

grant select,insert

on student

to Mary

grant select,insert

on sc

to Mary

grant select,insert

on course

to Mary

  1. 用户Tom对sc表有DELETE权力,对grade字段具有UPDATE权力,设置完成进行验证。 

grant delete

on sc

to Tom

grant update(grade)

on sc

to Tom

  1. 把对用户Tom授予的所有权力收回,设置完成进行验证。

revoke delete,update

on  sc

from Tom

revoke insert

on  student

from Tom cascade

  1. 要求新建U1用户,对应登录名“ddd”,具有查看选修了数据库课程的学生学号、姓名、所在系和成绩信息,同时对该成绩具有修改的权限,设置完成进行验证。

新建登录名

create login ddd with password='111'

新建用户

create user u1 for login ddd

新建视图

create view caojing (sno,sname,sdept,grade)

as

select student.sno,sname,sdept,grade

from student,sc

where cno in(select cno from course where cname='数据库')

grant all on caojing to u1

  1. 创建新的用户U2和U3,进行下面相应的权限设置。

create login login4 with password='444'

create login login5 with password='555'

create user u2 for login login4

create user u3 for login login5

  1. 赋予所创建的U2用户db_datareader角色,验证权限设置。

create role caojing

exec db_datareader'caojing','u2'

  1. 赋予所创建的U3用户db_datawriter角色,验证权限设置。

create role caojing2

exec db_datawriter'caojing2','u3'

  1. 查看用户U2的权限信息

exec sp_helprotect null,'u2'

(4)查看SC表的授权信息。

exec sp_helprotect'student'

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

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

相关文章

【Android复习笔记】ARouter / Navigation / EventBus

注:本文主要基于过去 Android View 体系的路由学习笔记整理,不包括最新的 Jetpack Compose 路由体系,如您需了解关于 Jetpack Compose 中的导航路由,请参考 Jetpack Compose 中的导航路由 一文。 传统路由方式 // 显性意图 startActivity(new Intent(this, HomeActivity.c…

JavaScript 的性能分析与提升

JavaScript 的性能分析与提升 对于 JavaScript/前端来说,性能的提升主要有两大方面: 页面初始化的优化 这一方面主要涉及到非代码结构上,但是能够提升用户体验感的优化,如,提升用户看到页面的速度、减少用户等待与页面…

一、枚举类型——使用接口来组织枚举

枚举类型无法被继承,这一点可能有时会让人沮丧。想要继承枚举的动机,一部分源自希望扩充原始枚举中的元素,另一部分源自想要使用子类型来创建不同的子分组。 你可以在一个接口内对元素进行分组,然后基于这个接口生成一个枚举&…

Python零基础入门(三)——基本输入与输出

系列文章目录 个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟 码字不易,如果觉得文章不…

关于 Vue3 响应式 API 以及 reactive 和 ref 的用法

文章目录 📋前言🎯关于响应式🎯reactive 的用法🎯ref 的用法📝最后 📋前言 这篇文章记录一下 Vue3 响应式的内容,其中还包括了 reactive 和 ref 的用法。响应式是一种允许以声明式的方式去适应…

VMware16虚拟机安装Ubuntu16.04 LTS

VMware14虚拟机安装Ubuntu16.04 LTS 一、基本介绍二、vmware下安装ubuntu系统2.1 下载ubuntu客户端镜像2.2 安装及配置2.2.1 安装2.2.2 配置 三、ubuntu系统使用 回到目录   回到末尾 一、基本介绍 对于ubuntu而言,就是linux操作系统的具体,而linux对…

S7-1200通过外部端子控制V20变频器启停+MODBUS读写频率的具体方法

S7-1200通过外部端子控制启停+MODBUS读写频率的具体方法 本例中是通过S7-1200PLC外部端子的方式控制变频器启停,用Mobus RTU通讯读写变频器频率。 硬件连接: 屏蔽双绞线将V20变频器P+,N-连接到CPU上CB1241 T/RA 和T/RB, T/RB接P+,T/RA接N-。TA和T/RA用短线连上,TB和T/RB用短…

jmeter函数助手

详解JMeter函数和变量 测试人员可以在JMeter的选项菜单中找到函数助手对话框("Function Helper"对话框),如图11-1所示。 图11-1 函数助手(Function Helper)对话框 使用函数助手,测试人员可以…

【Python】文件操作 ② ( 文件操作 | 读取文件 | read 函数 | readline 函数 | readlines 函数 )

文章目录 一、读取文件1、read 函数2、readline 函数3、readlines 函数 二、代码示例 - 读取文件1、代码示例 - read 函数读取文件 10 字节内容2、代码示例 - read 函数读取文件所有内容3、代码示例 - readline 函数读取文件一行内容4、代码示例 - readlines 函数读取文件所有内…

利用 AI 作图帮助理解知识

一、背景 人类对图形的接受和处理能力高于对文字和数字的处理能力。 如果我们学习某个知识的时候,能够找到配套的图,理解会好很多。 但,并不是所有的知识都有配图。 然而,人工智能的时代已经来临,为什么不尝试用 AI…

Flutter 项目创建、运行及结构分析

目录 开发工具 创建项目 1.New Flutter Project 1.1直接创建新项目 1.2 已有项目创建新项目 2.选择SDK,补充项目资料 3.Demo已生成 3.1 android 目录 3.2 ios目录 3.3 lib目录 3.4 test 目录(可先不管) 4.配置文件 4.1 pubspec.yaml文件 4.2 pubspec.lock 4…

chatgpt赋能python:Python报错重新执行技巧

Python报错重新执行技巧 如果你在使用Python编程时,经常遇到报错的情况,特别是在大量数据处理或者复杂算法实现时,报错更是常态。那么,你是否不知道该如何处理这些报错信息,或者对于重新执行代码有一些不确定的想法&a…

【Leetcode60天带刷】day15二叉树——102. 二叉树的层序遍历 ,226.翻转二叉树 ,101.对称二叉树 2

题目: 102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],…

嵌入式系统课程设计——温度记录仪

课程设计目录 一、嵌入式系统基础实验 二、项目需求分析 三、实验方案设计 四、实验程序设计 五、成本核算情况 八、完成情况与问题分析 九、学习心得 一、嵌入式系统基础实验 1.1实验平台的使用 图1 建立新工程图片 图2 选择lpc1114芯片图片 图3 选择头文件图片 图4 编译…

基于51单片机数字频率计的设计与实现

目录 第一章 系统原理与总体设计 1.1系统组成 1.2系统原理 1.3测量原理 1.4频率测量与总体设计 第二章 硬件电路设计 2.1硬件电路框图 2.2数字频率计原理图 2.3硬件电路设计 第三章 软件程序设计 3.1程序流程图 3.2显示电路程序设计 3.3 定时器初始化程序设计 3.4…

MeetingService重构和ParticipantList性能优化实践

​ 一丶背景 1.1 现状 最初Rooms客户端只支持加入Rcv meeting这个meeting type,RcvMeetingStateService里写了一些加会的状态机转换和Audio, Video, Share相关的功能代码。后续有新的业务,需要增加支持Webinar, Sip等各种Meeting,MeetingS…

Linux Shell 实现一键部署ovirt4

ovirt 前言 oVirt是一个开源分布式虚拟化解决方案,旨在管理您的整个企业基础设施。oVirt使用可信的KVM管理程序,并基于其他几个社区项目构建,包括libvirt、Gluster、PatternFly和Ansible。 Ovirt仅支持系统Centos / Redhat ovirt download…

npm利用verdaccio工具发布到私有仓库的教程

文章目录 概要安装方式运行方式相关的配置淘宝源修改开发访问地址设置用户删除用户更换源设置发布当前包 概要 提示:用于将可复制和常用的方法打包发布 例如: 可以将我们的公共组件和工具类以及SDK等核心的代码发布到外网中,需要我们常见私…

小白到运维工程师自学之路 第三十五集 (MongoDB的基本使用)

一、概述 MongoDB是一个非关系型数据库管理系统,它使用文档模型存储数据。MongoDB中的文档类似于JSON对象,可以包含键值对和嵌套文档。MongoDB提供了强大的查询语言、聚合框架、索引和直接在数据存储中运行的计算。 MongoDB被广泛应用于许多领域&#x…

MySQL开启远程访问权限

默认情况下,MySQL只允许本地登录,即只能在安装MySQL环境所在的主机下访问。 但是在日常开发和使用中,我们经常需要访问远端服务器的数据库,此时就需要开启服务器端MySQL的远程连接权限。1、生成环境,连接MySQL 2、查看…