实验4 数据的安全性管理
实验4 数据的安全性管理
一、实验目的
- 掌握SQL Server身份验证模式。
- 掌握创建登录账户、数据库用户的方法。
- 掌握使用角色实现数据库安全性的方法。
- 掌握权限的分配。
二、实验内容
1、设置身份验证模式:Windows身份验证模式和混合模验证模式。
2、设置登录账户
3、设置数据库用户
4、设置数据库角色。
5、设置管理对象的权限
三、实验步骤
1.将SQL Server服务器设置为混合身份验证模式
如果安装时使用的是”“Windows身份验证模式”,则按以下步骤可以将SQL Server服务器设置为“混合身份验证模式”。
- 依次单击开始->所有程序->SQL Server->SQL Server Management Studio 启动SQL Server数据库管理系统
- 连接成功后,右键一个服务器实例,选择"属性"
- 在"属性"窗口中,转到"Security"(安全性)项,在"服务器身份验证"中设置为"SQL Server和Windows身份验证模式",确定,根据提示,应该重新启动SQL服务
- 使用Windows身份验证登录,执行下面的语句启用sa用户,同时清除sa的密码(能成功登陆后再根据你的需要设置),也可在“新建查询”窗口中执行以下SQL语句完成。
EXEC sp_password null, '123','sa'ALTER LOGIN sa ENABLE
- 检查Microsoft SQL Server→配置工具→SQL Server Configuration Manager中是否将相关协议启用并按提示重启服务。
- 用sa登录连接,“服务器名称”以IP形式给出,如:127.0.0.1\SQLEXPRESS或172.16.67.158\SQLEXPRESS,(具体IP值查看本机或其他同学机器的“本地连接”,172.16.67.158只是示例),测试登录情况。
- 如果不能登录127.0.0.1\SQLEXPRESS服务器,打开Microsoft SQL Server→配置工具→SQL Server Configuration Manager,启用“SQL Server Browser”服务,并打开“SQL Server网络配置”,启用“TCP/IP”并右击修改属性中ip地址127.0.0.1为启用。
2.创建登录名mylogin
- 方法一:创建使用SQL Server身份验证的SQL Server登录名
- 在SQL Server Management Studio中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。
- 右键单击“安全性”文件夹,指向“新建”,然后单击“登录名”。
- 在“常规”页上的“登录名”框中输入一个新登录名的名称。
- 选择“SQL Server身份验证”(注意:不要使用默认的“Windows身份验证”)。
- 输入登录名mylogin及其密码123。
- 选择应当应用于新登录名的密码策略选项。注意:不要钩选“下次登录时必须修改密码”。
- 单击“确定”。
- 用新创建的登录名登录系统,看看可以进行哪些操作,特别测试一下打开“学生_教学”数据库后的结果。
- 方法二:通过Transact-SQL创建使用SQL Server身份验证的SQL Server登录名
- 在查询编辑器中,输入以下Transact-SQL命令:
CREATE LOGIN mylogin WITH PASSWORD = '123';GO
3.创建数据库用户myuser并映射登录名mylogin
通过SSMS将附件压缩包“案例数据库”中的“学生-教学”数据库(含mdf和ldf两个文件)导入到本地数据库中,然后执行以下操作:
- 方法一:通过SQL Server Management Studio创建数据库用户
- 打开对象资源管理器并展开要在其中创建新登录名的服务器实例文件夹。
- 依次展开数据库,打开“学生-教学”数据库,点击“安全性”-“用户”
- 右键单击用户,选择“新建用户”
- 输入用户名myuser,选择登录名mylogin,确定。
- 方法二:通过Transact-SQL创建数据库用户:
create user myuser for login mylogin with default_schema=dbo
- 指定数据库用户“myuser”的默认schema是“dbo”。这意味着用户“myuser”在执行“select * from t”,实际上执行的是 “select * from dbo.t”。
4创建并设置数据库角色
- 方法一:通过SQL Server Management Studio新建数据库角色
- 打开对象资源管理器并展开要在其中创建新登录名的服务器实例文件夹
- 依次展开数据库,某个具体数据库(例如:“学生-教学”数据库),选择“安全性”-“角色”
- 右击选中新建数据库角色,输入角色名myrole,确定
- 方法二:通过Transact-SQL新建角色:
CREATE ROLE myrole
5对用户赋予指定的角色
- 方法一:在对象资源管理器中设置数据库角色
- 在SQL Server Management Studio中,打开对象资源管理器并展开要在其中创建新登录名的服务器实例的文件夹。
- 依次展开数据库,打开“学生-教学”数据库,点击“安全性”-“用户”
- 选中“myuser”用户,右击“属性”,在展开的数据库用户属性对话框中为其赋予“db_owner”角色和“myrole”角色。
- 方法二:通过Transact-SQL设置数据库角色
- 通过加入数据库角色,对数据库用户“myuser”赋予权限:
exec sp_addrolemember 'db_owner', 'myuser'
此时,myuser就可以全权管理数据库“学生-教学”中的对象了。
- 如果想让SQL Server登陆帐户“mylogin”访问多个数据库,比如S_T。可以让sa执行下面的语句:
use S_Tgocreate user myuser for login mylogin with default_schema=dbogoexec sp_addrolemember 'db_owner', 'myuser'go
- 此时,mylogin就可以有两个数据库(“学生-教学”、“S_T”)的管理权限了!
6.设置管理对象的权限
- 方法一:在对象资源管理器中授权、收回和拒绝权限:
- 选中需要授权的登录名、用户名或角色名
- 右键单击选择“属性”,在弹出的该对象的属性窗口中选择“安全对象”,进行权限分配。
- 方法二:通过Transact-SQL分配权限:通过GRANT和REVOKE语句
7. 以mylogin登录“127.0.0.1\SQLEXPRESS”服务器,在“学生_教学”数据库的Student表中进行增删改查的操作。示例如下。
四、实验任务
1、创建一个登录账号Testlogin。
2、在“学生_教学”数据库中创建对应于这个登录账号的数据库用户TestUser。
3、在“学生_教学”数据库中创建角色TestRole,它应该拥有创建表和视图的权限,并拥有对Student表的查询、修改、插入权限。
4、将用户TestUser添加到TestRole角色中。
5、以Testlogin登录“127.0.0.1\SQLEXPRESS”服务器,在“学生_教学”数据库的Student表中插入一条记录。
五、实验报告要求
1、写出完成实验任务1~4相对应的SQL语句
任务1:
CREATE LOGIN TestLogin WITH PASSWORD = '123';GO
任务2:
create user TestUser for login Testlogin with default_schema=dbo
任务3:
CREATE ROLE TestRolegrant create table,create view to TestRolegrant select,update,insert on Student to TestRole
任务4:
exec sp_addrolemember 'TestRole', 'TestUser'
2、给出实验任务5的执行界面截图。参照“实验步骤”中的最后一幅示例图,要求同时显示Testlogin登录“127.0.0.1\SQLEXPRESS”服务器的界面信息及在“学生_教学”数据库的Student表中插入一个名字为“王小飞”的学生记录。
use 学生_教学goINSERT INTO Student (Sno,Sname)VALUES(202005113,'王小飞')SELECT *FROM Student
3、并记录在实验过程中遇到的问题、解决办法及心得体会。
问题1:添加附件失败,如图:
原因:断开了windows身份验证,也没有登录sa的混合身份验证,而是直接进行了TestLogin身份验证,导致没有权限添加附件。
解决办法:在windows身份验证的连接下,再次进行sa的混合身份验证,这里才可以添加身份验证。当然,我也在网上搜了搜,打开了很多权限。
问题2:127.0.0.1\SQLEXPRESS没有连接上。
原因:脑子抽了,以为有选项可以供选择。
解决办法:网上搜了很多,也打开了很多权限,启动服务好多次。最后同学告诉我,这是手动输入。
问题3:
解决办法:要在学生-教学数据库里操作,添加use 学生_教学 go 语句。
心得体会:多练多学多问,继续加油。
相关文章:

scala构建工具sbt使用介绍
sbt工具下载及说明: https://www.scala-sbt.org/0.13/docs/zh-cn/Installing-sbt-on-Windows.html sbt是交互式构建工具,使用scala定义任务并执行它们 目录下启动 sbt,然后执行 run 命令进入到 sbt 的交互式命令 $ mkdir hello $ cd hello $ …

读书笔记--C陷阱与缺陷(三)
第三章 1. 指针与数组 书中强调C中数组注意的两点: 1) C语言只有一维数组,但是数组元素可以是任何类型对象,是另外一个数组时就产生了二维数组。数组大小是常数(但GCC实现了变长数组。。) 2) 一个数组只能做两…

[导入]儿子语录
2008.09.16:笑脸,笑脸,不笑脸,不笑脸,不高兴脸,不高兴脸。2008.09.19:爸爸是黄毛毛虫,我是绿毛毛虫,妈妈是紫毛毛虫,奶奶是咖啡色毛毛虫,太太是白…

ISA2006标准版,本地主机不能上网问题的解决一例
今天,帮一位朋友解决ISA SERVER2006标准版本地主机不能上网的问题,中间经历了一些困难,有点意思,故写了下来,供各位参考分享。一、安装环境:windows server 2003 sp2isa server 2006 标准版双网卡 外网卡固…

第8章系统服务(简易音频播放器的实现)
开发一个简易音乐播放器,要求实现: 综合使用Service,BroadCast,ContentProvider等组件实现后台播放。 播放和暂停、上一首、下一首、停止;后台播放功能, 按下返回键退出应用后再次打开应用,UI 显示应能与当…

await使用中的阻塞和并发(一)
好吧,不加点陈述不让发首页。那我们来陈述一下本篇提到的问题和对应的方法。 在.NET4.5中,我们可以配合使用async和await两个关键字,来以写同步代码的方式,实现异步的操作。 好处我目前看来有两点: 1.不会阻塞UI线程。…

中国经济是前所未有二元经济(转)
今天的中国是一个前所未有的二元经济,而且是三七开的二元经济,我国这么多年的经济发展,每一年GDP以10%的成长率增长的原因,就是二元经济的过热部门推动的,因此我们GDP的组成是非常扭曲的,超过一半都是固定资…

Unity 简单示例代码和向导/Unity Aplication Block
Unity 简单示例代码和向导 关于Unity 的说明和下载地址,请访问[微软控制反转和依赖注入容器Unity 1.0发布] http://forum.entlib.com/Default.aspx?gposts&t25 。 下面的范例主要实现:首先,定义ILogger 接口。然后,定义一个实…

crontab修改默认编辑器
$ sudo select-editor 选择3或者4 然后再次打开 crontab -e 就会是vim的方式了。 转载于:https://www.cnblogs.com/jiqing9006/p/10343035.html

Programming C# 学习笔记(二) 出发:“Hello World”
小序: 准备写这章的学习笔记了,啊,Hello World!多么亲切的语句,呵呵,当初学C语言的第一个程序就是输出它, 还记得费了好大劲终于把它输出来时候的那种兴奋感觉,真是让我怀念哦&a…

多IP绑定与多网卡绑定
多IP绑定: 实验目的: 实现如下图网络连接 实现 A, B 在分配不同网段的网络地址的情况下可以互联 实验条件有限,在没有交换机的情况下,将主机A ,B,路由器R1处于同一网络。将三台虚拟机的网络适配器设置为仅主…

华硕WL-500W无线路由器使用感受
作为一款实用型的家庭或小型企业应用的无线路由器,WL-500W有着独特的外观:<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office"…

什么是物联网网关?物联网网关具备什么功能?_转
参考:什么是物联网?物联网产业链体系深度分析 随着物联网概念的不断深入,商业级的网络应用遍地开花,各种智能家电层出不穷,改善着我们的生活。与此同时,物联网网关也将成为连接的重要纽带。作为网关设备&am…

MSDN Webcast“深入浅出ASP.NET AJAX系列”
课程: ASP.NET AJAX深入浅出系列课程(1):ASP.NET AJAX 概述(3月13日):对于ASP.NET AJAX的大致功能进行概述和演示,通过简单的演示让听众了解到ASP.NET AJAX框架的强大之处,以及对于开发带来的便…

技巧:结合Zabbix与SNMP监控嵌入式设备
在如何利用Zabbix监控网络设备三篇文章的前两篇中,我们介绍了如何通过Zabbix代理监控网络设备。但有些设备无法安装Zabbix代理,需要采用其他方法监控。需要考虑无法安装软件的嵌入式设备或应用程序。对于这些设备,可通过SNMP进行监控。 …

值得收藏的146条经典民间偏方
1、本贴所用药物,以食物为主,绝对无毒。 2、为使读者易懂,剂量单位均用旧制,如:斤、两、钱等,有的用碗,是指一般性中碗。 3、所用药物凡带有*记号的一般可到中药店买,药店都有。 4、…

DataGridView打印类
一下这个类专门用于打印DataGridView,但是功能不是很强大 如果有个性化需求 可在此基础上简单修改 Code 1public class DataGridViewPrint 2 { 3 private DataGridView dataGridView; 4 private PrintDocument printDocument; 5 private PageSetu…

Asp.Net Core AsyncLocal 异步上下文
引子 阅读以下代码,并尝试分析 代码解析 在主线程中,线程Id为1,为线程变量赋值 变量d6ff开启一个新的task,此时线程Id为4,变量d6ff,并调用Task1开启一个同步Task3,线程Id为1。变量d6ffÿ…

JDBC数据库操作
启动MySQL数据库服务 网络课堂中共享的MySQL 5.1压缩包下载后,直接在C盘根目录下解压后, 进入bin目录,执行“启动服务.cmd”即可启动服务器(如果未放在C盘根目 录下,需要修改配置文件my.ini和启动服务.cmd)…

mybatis学习7 实战项目
自己写一个实战项目,最好和hibernate做对比。转载于:https://www.cnblogs.com/liufei1983/p/7492214.html

凤凰网制作的 “中国挺住” 桌面与MSN,QQ头像下载
凤凰网制作的 “中国挺住” 桌面与MSN,QQ头像下载。 点击下载 转载于:https://www.cnblogs.com/yajiya/archive/2008/05/24/1206574.html

树莓派Android Things物联网开发:创建一个Things项目
【转载请注明出处: http://blog.csdn.net/leytton/article/details/77854144】《树莓派Android Things物联网开发》系列文章专栏 http://blog.csdn.net/column/details/17741.html树莓派Android Things物联网开发:入门及资料汇总树莓派Android Things物联网开发&…

使用JDBC进行MySQL 5.1的数据连接、查询、修改等操作练习。
目录 顺序查找 控制游标 条件与排序查询 1. where子语句 一般格式: 2. 排序 更新、添加与删除操作 1.更新 2.添加 3.删除 通用查询 顺序查找 所谓顺序查询,是指ResultSet对象一次只能看到一个数据行,使用 next()方法移到下一个数据行…

Tensorflow多线程输入数据处理框架(一)——队列与多线程
参考书 《TensorFlow:实战Google深度学习框架》(第2版) 对于队列,修改队列状态的操作主要有Enqueue、EnqueueMany和Dequeue。以下程序展示了如何使用这些函数来操作一个队列。 #!/usr/bin/env python # -*- coding: UTF-8 -*- # c…

编译器错误信息: CS0016
编译器错误信息: CS0016: 未能写入输出文件,..\Temporary ASP.NET Files\WebApp\d087da43\c12930d8\9ze28k_8.dll”--拒绝访问 编译器错误信息: CS0016: 未能写入输出文件“d:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\5177u\d087da43\c12930d8\9ze…

Visual Studio 2008 Samples Page
Visual Studio 2008 Samples Page http://msdn.microsoft.com/zh-cn/bb330936(en-us).aspx 如何实现 - 常规开发http://msdn.microsoft.com/zh-cn/library/ms246578.aspx Visual Studio 2008http://msdn.microsoft.com/zh-cn/library/aa187917.aspx .NET Framework 3.5http://m…

iOS开发网络篇—HTTP协议
说明:apache tomcat服务器必须占用8080端口 一、URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) 通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址、位置,互联网上的每个资源都有一个…

操作系统导论部分章节习题
进程 一。单选题(共1题,10.0分) 当某个进程进行系统调用以通过网络传输TCP数据包时,以下哪些步骤不会总是发生? A进程进入内核模式。 B,CPU的程序计数器转移到地址空间的内核部分。 C,该进…

Go-技篇第一 技巧杂烩
Go-技篇第一 技巧杂烩一句话技巧把你面向对象的大脑扔到家里吧,去拥抱接口。mikegehard学习如何使用Go的方式做事,不要把别的的编程风格强行用在Go里面。DrNic多用接口总比少用好。evanphx拥抱这种简洁、并行、工整的语言。francesc阅读官网golang.org上…

Visual Studio 2008 到底有多强?漫画告诉你 !
插入数据需要无数个SQL语句支持,而现在,你只需要有一个强大的LinQ巴士,就直接一次性全搞定,方便快捷 " 强大的中转站,帮你解决额外的问题,数据传输选择最优路径,完成工作。数据给了WCF&a…