数据库实验报告--安全性实验

一、 实验目的

(1)理解SQL Server验证用户身份的过程,掌握设置身份验证模式的方法。

(2)理解登录账号的概念,掌握混合认证模式下登录账号的建立与取消方法。

(3)掌握混合认证模式下数据库用户的建立与取消方法。

(4)掌握数据库用户权限的设置方法。

(5)理解角色的概念,掌握管理角色技术

二、实验内容

(1)在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server和Windows”模式(即混合模式)。

(2)创建、管理数据库服务器的登录账号。

① 用T-SQL语句创建、查看、删除登录账号。

② 在企业管理器中使用A.5.2节中介绍的方法创建一个登录账号。

(3)创建、管理数据库用户。用户是基于数据库的名称是和登录账号相关联的。只有DBA和数据库所有者才有执行系统存储过程sp_granddbaccess的权力。

① 用T-SQL语句创建、查看、删除数据库用户。

② 使用企业管理器创建、查看、删除数据库用户。

(4)管理用户权限。用户权限的管理可以使用企业管理器,也可以使用T-SQL语句。分别使用企业管理器和T-SQL语句完成第4章习题中的用户管理和用户权限管理。

(5)创建、管理数据库角色。

三、实验环境

SQL Server 2019

四、实验前准备

基于前三次实验建立的数据库和表

五、实验步骤及实验结果

1. 设置身份验证模式为“SQL Server和Windows”模式

如下图:
在这里插入图片描述

2. 创建、管理数据库服务器的登录账号。

① 用T-SQL语句创建、查看、删除登录账号。

创建一个名为student、密码为111、使用的默认数据库为JWGL的登录账号。如下图:

在这里插入图片描述

查看登录账号:
在这里插入图片描述
删除登录账号
在这里插入图片描述
② 在企业管理器中创建一个登录账号。

在企业管理器中, 展开要在其中创建新登录名的服务器实例的文件夹, 即图中的根目录. 展开【安全性】文件夹,右键单击【登录名】, 选择【新建登录名】.

在这里插入图片描述
接着输入登录名, 以SQL Server身份验证为例, 输入密码, 下面的三个选项中我取消了“用户在下次登录时必须更改密码” 这一项, 再点击确定.

在这里插入图片描述
就可以看到刚刚新建的登录名student了.

在这里插入图片描述

3. 创建、管理数据库用户

用户是基于数据库的名称是和登录账号相关联的。只有DBA和数据库所有者才有执行系统存储过程sp_granddbaccess的权力。

① 用T-SQL语句创建、查看、删除数据库用户。

为数据库JWGL创建一个用户user1, 该用户登录SQL Server服务器的账号为wang, 登录密码为secret.

在这里插入图片描述
查看数据库用户

在这里插入图片描述
查看结果如下:

在这里插入图片描述
删除数据库中的wang用户

在这里插入图片描述

② 使用企业管理器创建、查看、删除数据库用户。

为数据库JWGL创建一个用户user2,该用户登录SQL Server服务器的账号为zheng,登录密码为123456。

第一步: 使用上述创建登录用户的方法创建一个登录名为zheng, 登录密码为123456的用户.

第二步: 在展开数据库【JWGL】,右键点击【安全性】,选择【新建】–>【用户】.

在这里插入图片描述

输入用户名为user2, 登录名选择刚才创建的zheng登录用户, 点击确定.

在这里插入图片描述
就可以看到刚刚创建的数据库用户user2了

在这里插入图片描述

要想删除数据库用户, 右键点击user2, 点击删除即可

在这里插入图片描述

4. 管理用户权限。

用户权限的管理可以使用企业管理器,也可以使用T-SQL语句。完成第4章习题中的用户管理和用户权限管理。

习题6.对下列两个关系模式:

学生(学号, 姓名, 年龄, 性别, 家庭住址, 班级号)

班级(班级号, 班级名, 班主任, 班长)

使用grant语句完成下列授权功能:

a. 授予用户U1对两个表的所有权限,并可给其他用户授权。

首先按上面的方法建立两个用户U1和U2, 再执行sql语句

在这里插入图片描述
b. 授予用户U2对学生表具有查看权限,对家庭住址具有更新权限。

在这里插入图片描述

c. 将对班级表查看授权授予所有用户。

在这里插入图片描述
d. 将对学生表的查询、更新权限授予角色R1。

在这里插入图片描述

e. 将角色R1授予用户U1,并且U1可继续授权给其他角色。

使用书上的语句报错(会在第六点详细说明), 所以我用了alter语句

在这里插入图片描述

创建、管理数据库角色。

若一个小组共3个成员,他们对JWGL具有相同的操作权限,具体权限为对Student、Course表只能进行数据查询;对SC表可以进行查询、修改、删除和插入。

可以创建一个角色(如role),给该角色赋予相应的权限,然后给每个成员建立一个登录账号(如分别为lin,wang,zheng),并将每个成员的登录账号添加为数据库角色role的成员。

使用sql语句:

第一步: 创建一个role角色并赋予上述操作权限(对Student,Course表只能进行数据查询, 对SC表可以进行查询,修改,删除和插入)

在这里插入图片描述
第二步: 创建3个成员, 给每个成员建立一个登录账号(lin, wang, zheng), 并且将每个成员的登录账号添加为数据库角色role的成员.

在这里插入图片描述
第三步: 删除角色role, 删除时必须保证它不含任何数据库用户, 即要先删除其下的所有成员

在这里插入图片描述
然后删除角色role

在这里插入图片描述
使用企业管理器:

第一步: 新建三个登录名分别为lin, wang, zheng的登录用户(此时选择不带登录名的SQL用户)

在这里插入图片描述
第二步: 新建一个角色role, 并且给此角色添加刚才创建的三个用户作为角色成员

在这里插入图片描述

第三步: 因为要让成员对Student, Course表只能进行数据查询, 对SC表可以进行查询、修改、删除和插入

首先选择一张表, 右键点击选择属性

在这里插入图片描述

因为已经将三个成员的登录账号添加为角色role的成员,所以此时只需要给role授予相应的权限即可.如图所示(这里以SC表为例,Student, Course表也是同样), 用户或角色选择role, 再勾选需要授予的权限即可.

在这里插入图片描述

评价分析及心得体会

遇到的问题:

(1) 在编写授权语句时, 按照书上的原封不动的敲就会显示报错.书上使用的都是2008版, SSMS已经不怎么兼容了, 所以只需要把table删掉即可, 并且授权每次只可以授权一张表, 不可以多张, 如下图所示:

在这里插入图片描述
改成下图这样即可

在这里插入图片描述

(2) 将角色R1授予用户U1时, 使用书上语句出现错误

在这里插入图片描述

采用alter语句, 结果成功执行

在这里插入图片描述

按照属性查看角色R1的成员, 可以找到.

在这里插入图片描述
通过这次实验学习到了登录名和用户名的概念及其之间的关系, 数据库登陆名和数据库用户名是有差别的,在一个数据库中是一一相对应的关系。
登录名是访问 SQL Server 的通行证,是服务器级别的对象,登录到 SQL Server 之后还要创建数据库用户才能访问数据库资源;
创建数据用户的过程实际上就是建立登录名和数据用户之间映射关系的过程,一个登录名能为多个数据库用户,这种映射关系为同一服务器上不同数据库的权限管理带来更多便利.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Centos7中mysql安装配置

前提:先关闭防火墙或开启tcp的3306端口 1、查看服务器上是否有现成的安装包 yum list mysql* 2、去mysql官网的yum资源库找到对应的rpm文件的下载链接 确定系统版本 cat /etc/redhat-release 到mysql官网复制对应版本的资源下载链接 MySQL :: Download MySQL Yum…

git Husky

虽然我们已经要求项目使用eslint了,但是不能保证组员提交代码之前都将eslint中的问题解决掉了: 也就是我们希望保证代码仓库中的代码都是符合eslint规范的; 那么我们需要在组员执行 git commit 命令的时候对其进行校验,如果不符合…

说说验证码功能的实现

前言 大家好,我是 god23bin,今天说说验证码功能的实现,相信大家都经常接触到验证码的,毕竟平时上网也能遇到各种验证码,需要我们输入验证码进行验证我们是人类,而不是机器人。 验证码有多种类型&#xff…

项目中使用es(一):使用springboot操作elasticsearch

使用springboot操作es 写在前面搭建项目环境和选择合适版本具体的代码实现(1)继承ProductInfoRepository具体的代码实现(2)使用ElasticsearchRestTemplate操作问题总结最后放个demo 写在前面 对于elasticsearch的搭建&#xff0c…

5款提高工作效率的无广告软件

今天推荐一些可以大幅度提升办公效率的小软件,安全无毒,下载简单,最重要的是没有广告! 1.照片处理——Darktable Darktable是一款用于处理和管理数码照片的工具。它可以让你对RAW格式的照片进行非破坏性的编辑,并提供多种模块和…

设计模式之~观察者模式

观察者模式又叫做发布-订阅(Publish/Subscribe)模式。 观察者模式observer:定义了一种一对多的依赖关系,让多个观察者对象同时监听某个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们…

Linux系统下imx6ull QT编程—— C++构造函数、析构函数、this指针(四)

Linux QT编程 文章目录 Linux QT编程一、什么是构造函数?二、什么是析构函数?三、示例四、this指针 一、什么是构造函数? 构造函数在对象实例化时被系统自动调用,仅且调用一次。前面我们学过类,实际上定义类时&#x…

【Spring】— 动态SQL :<if>元素

动态SQL &#xff1a;元素 在MyBatis中&#xff0c;<if>元素是常用的判断语句&#xff0c;主要用于实现某些简单的条件选择。在实际应用中&#xff0c;我们可能会通过多个条件来精确地查询某个数据。 【示例8-1】下面通过一个具体的案例来演示元素的使用。 &#xff0…

基于RPC协议的接口自动化测试可以用Python语言实现

基于RPC协议的接口自动化测试可以用Python语言实现。下面是实现步骤&#xff1a; 1、安装依赖库&#xff0c;如protobuf、grpc。 2、编写.proto文件定义接口参数和返回值。 3、使用protoc编译.proto文件生成Python代码。 4、编写客户端代码调用远程接口进行测试。 具体实现…

数据结构与算法练习(三)二叉树

文章目录 1、树2、二叉树3、满二叉树4、完全二叉树5、二叉树的遍历&#xff08;前序、中序、后序&#xff09;二叉树删除节点或树 6、顺序存储二叉树顺序存储二叉树遍历&#xff08;前序、中序、后序&#xff09; 7、线索化二叉树中序线索二叉树前序线索二叉树后序线索二叉树 1…

悲观锁、乐观锁、自旋锁

悲观锁、乐观锁、自旋锁 &#xff08;1&#xff09;乐观锁 乐观锁是一种乐观的思想&#xff0c;即认为读多写少&#xff0c;遇到并发的可能性低&#xff0c;每次拿数据时都认为别人不会修改&#xff0c;所以不会上锁&#xff0c;但是在更新的时候会判断一下在此期间别人有没有…

开源赋能 普惠未来|中软国际寄语 2023 开放原子全球开源峰会

中软国际作为行业领先的全球化软件与信息技术服务企业及数字化转型服务商&#xff0c;近年来积极布局开源生态&#xff08;OpenHarmony、openEuler&#xff09;、智能云、ERP、AIGC、教育科技、智能车六大赛道&#xff0c;加速业务转型创新。 中软国际为开放原子开源基金会白金…

力扣---二叉树OJ题(多种题型二叉树)

文章目录 前言&#x1f31f;一、剑指 Offer 55 - I. 二叉树的深度&#x1f30f;1.1 链接&#xff1a;&#x1f30f;1.2 代码一&#xff1a;&#x1f30f;1.3 代码二&#xff1a;&#x1f30f;1.4 流程图&#xff1a; &#x1f31f;二、100. 相同的树&#x1f30f;2.1 链接&…

【ChatGPT】ChatGPT快速生成短视频

1.chatGPT剪映 chatGPT生成文本后通过剪映图文成片 这次用了new bing&#xff1a;Chatbot AI 在线网页版 (atmob.cn) 打开剪映-图文成片 把new bing生成的文本粘贴过来&#xff0c;点击生成视频。 生成好了&#xff0c;是这样 剪映自动生成的&#xff0c;最后还是得手工改改&…

Linux4.4网页与安全优化

文章目录 计算机系统5G云计算第一章 LINUX Apache网页与安全优化一、网页压缩1.检查是否安装 mod_deflate 模块2.如果没有安装mod_deflate 模块&#xff0c;重新编译安装 Apache 添加 mod_deflate 模块3.配置 mod_deflate 模块启用4.检查安装情况&#xff0c;启动服务5.测试 mo…

06 Redis分布式锁

常见面试问题 Redis除了拿来做缓存&#xff0c;你还见过基于Redis的什么用法&#xff1f;Redis 做分布式锁的时候有需要注意的问题&#xff1f;如果是 Redis 是单点部署的&#xff0c;会带来什么问题&#xff1f;那你准备怎么解决单点问题呢&#xff1f;集群模式下&#xff0c…

MySQL函数

日期函数 获得年月日&#xff1a; select current_date(); ---------------- | current_date() | ---------------- | 2017-11-19 | ----------------获得时分秒&#xff1a; select current_time(); ---------------- | current_time() | ---------------- | 13:51:21 …

SpringCloud:分布式缓存之Redis哨兵

Redis提供了哨兵&#xff08;Sentinel&#xff09;机制来实现主从集群的自动故障恢复。 1.哨兵原理 1.1.集群结构和作用 哨兵的结构如图&#xff1a; 哨兵的作用如下&#xff1a; 监控&#xff1a;Sentinel会不断检查您的master和slave是否按预期工作自动故障恢复&#xff…

使用 ChatGPT API 构建系统(三):思维链推理

今天我学习了DeepLearning.AI的 Building Systems with the ChatGPT API 的在线课程&#xff0c;我想和大家一起分享一下该门课程的一些主要内容。 下面是我们通过Open API来访问ChatGPT模型的主要代码&#xff1a; import openai#您的openai的api key openai.api_key YOUR-O…

VMware安装Centos7图形化GUI系统全过程

1、打开vmware&#xff0c;点击文件然后新建虚拟机 2、然后自定义直接下一步 3、下一步 4、这里我们稍后安装操作系统&#xff0c;继续下一步 5、随后选择Centos7 64位&#xff0c;继续下一步 6、选择你所需要安装的虚拟机存放的位置&#xff0c;虚拟机名字看自己来设置&#x…