实验5:数据库安全性
- 格式:doc
- 大小:481.00 KB
- 文档页数:12
实验1 MySQL数据库服务器配置(预备知识:第1,2章;分值:16分;需辅导教师评分)1.实验目的掌握MySQL的安装方法,练习MySQL数据库服务器的使用,理解MySQL 服务器的组成,掌握MySQL服务器的配置方法。
2.实验内容【实验1-1】下载当前最新版本的MySQL,或者之前某个版本的MySQL,并在Windows上完成安装。
【实验1-2】安装完毕后,找到MySQL的配置文件;并查看初始化配置文件的内容。
【实验1-3】使用start和stop命令启动和关闭mysql数据库。
【实验1-4】连接到MySQL服务器,连接成功后是一个mysql>的提示。
【实验1-5】在MySQL数据库服务器端找到错误日志文件,并查看错误日志的内容。
【实验1-6】通过初始化配置文件,启用二进制日志、慢查询日志和通用查询日志。
【实验1-7】查看二进制日志、慢查询日志和通用查询日志的内容。
【实验1-8】关闭二进制日志、慢查询日志和通用查询日志。
【实验1-9】用CREATE DATABASE语句创建数据库,使用SHOW DATABASES命令查看显示所有数据库,可以看到新建的数据库名称。
【实验1-10】使用Workbench图形化管理工具创建数据库。
【实验1-11】使用SHOW STATUS命令查看系统状态参数;使用SHOW VARIABLES命令查看服务器变量设置。
【实验1-12】使用命令“select @@basedir”和“select @@datadir”寻找到MySQL的安装目录和数据存放目录。
【实验1-13】使用SHOW ENGINES查看所有引擎,在配置文件中更改默认存储引擎default-storage-engine变量,改为MyISAM。
重启MySQL,查看默认存储引擎是否改变。
【实验1-14】创建一个数据表t_myisam(id int auto_increment, name varchar(30),primary key(id)),创建时显式指定存储引擎为MyISAM。
第5章数据库完整性与安全性1. 什么是数据库的完整性?什么是数据库的安全性?两者之间有什么区别和联系?解:数据库的完整性是指数据库中数据的正确性、有效性和相容性,其目的是防止不符合语义、不正确的数据进入数据库,从而来保证数据库系统能够真实的反映客观现实世界。
数据库安全性是指保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏。
数据的完整性和安全性是两个不同的概念,但是有一定的联系:前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出所造成的无效操作和错误结果。
后者是保护数据库防止恶意的破坏和非法的存取。
也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据.2。
什么是数据库的完整性约束条件?完整性约束条件可以分为哪几类?解:完整性约束条件是指数据库中的数据应该满足的语义约束条件。
一般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束.静态列级约束是对一个列的取值域的说明,包括以下几个方面:①数据类型的约束,包括数据的类型、长度、单位、精度等;②对数据格式的约束;③对取值范围或取值集合的约束;④对空值的约束;⑤其他约束.静态元组约束就是规定组成一个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。
静态关系约束是在一个关系的各个元组之间或者若干关系之间常常存在各种联系或约束。
常见的静态关系约束有:①实体完整性约束;②参照完整性约束;③函数依赖约束.动态列级约束是修改列定义或列值时应满足的约束条件,包括下面两方面:①修改列定义时的约束;②修改列值时的约束。
动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满足某种约束条件.动态关系约束是加在关系变化前后状态上的限制条件,例如事务一致性、原子性等约束条件。
3. 试述DBMS如何实现完整性控制.解:为了维护数据库的完整性,DBMS提供了以下三种机制:①完整性约束条件定义完整性约束条件也称为完整性规则,是数据库中的数据必须满足的语义约束条件.SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。
177
实验5
索引和数据完整性
目的与要求
(1)掌握索引的使用方法;
(2)掌握数据完整性的实现方法。
实验准备
(1)了解索引的作用与分类;
(2)掌握索引的创建方法;
(3)理解数据完整性的概念及分类;
(4)掌握各种数据完整性的实现方法。
实验内容
1.创建索引
(1)使用CREATE INDEX 语句创建索引
① 对YGGL 数据库的Employees 表中的DepartmentID 列建立索引。
在MySQL 客户端输入如下命令并执行:
create index depart_ind
on Employees(DepartmentID);
② 在Employees 表的Name 列和Address 列上建立复合索引。
create index Ad_ind
on Employees(Name, Address);
③ 对Departments 表上的DepartmentName 列建立唯一性索引。
create unique index Dep_ind
on Departments(DepartmentName);
【思考与练习】
a .索引创建完后可以使用SHOW INDEX FROM tbl_name 语句查看表中的索引。
b .对Employees 表的Address 列进行前缀索引。
c .使用CREATE INDEX 语句能创建主键吗?
(2)使用ALTER TABLE 语句向表中添加索引
① 向Employees 表中的出生日期列添加一个唯一性索引,姓名列和性别列上添加一个复合索引。
使用如下SQL 语句:。
数据库原理
实验指导书
实验五SQL Server 2000中数据库安全性设置
1. 实验的目的
1)熟悉通过SQL对数据进行安全性控制。
2)完成作业的上机练习。
2. 实验内容
要求:在SQLSERVER2000中利用SQL语句完成以下操作。
1)通过SQL对登入账号,用户的创建修改与删除。
2)通过SQL对角色管理,以及角色中添加用户。
3)对角色和用户数据的授权和权力回收
3. 实验步骤
1)复制生成xscj数据库的代码并运行。
2)创建登入账号和用户名s1,s2,t1,t2,l1,l2密码与账号相同默认登入访问xscj数据库。
3)创建角色student,teacher,leader。
4)为角色student授权student表、course表和SC表的select 权力,拒绝修改和删除这三个表的权力
5)为角色teacher授权student表、course表和SC表的select 权力,以及对SC表的修改,插入更新的权力, 拒绝修改student表和course表的权力
6)为角色leader授权student表、course表和SC表的select 权力,以及对student表、course 表修改,插入更新的权力,拒绝修改和删除表SC的权力
7)将s1,s2加入student角色
8)将t1,t2加入teacher角色
9)将l1,l2加入leader角色
10)分别以s1,t1,l1登入服务器验证对student表、course表和SC表相应权限的验证。
第5章数据库安全性(2课时)数据库的数据保护主要包括数据的安全性和数据的完整性。
数据的安全性是为了保护数据库防止恶意的破坏和非法访问,防范对象是非法用户和非法操作。
数据库的完整性是指数据的正确性和相容性,是为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据,防范对象是不合语义的、不正确的数据。
举例说明数据的完整性(三种完整性各一例)。
为维护数据库的完整性,DBMS必须具备三个功能:1 提供定义完整性约束条件的机制完整性约束条件也称为完整性约束规则,是数据库必须满足的语义约束条件。
SQL标准使用了一系列概念来描述完整性,包括关系模型的实体完整性、参照完整性和用户定义完整性。
这些完整性一般由SQL的DDL语句来实现。
它们作为数据库模式的一部分存入数据字典中。
2 提供完整性检查的方法DBMS中检查数据是否满足完整性约束条件的机制称为完整性检查。
一般在INSERT、UPDA TE、DELETE语句执行后开始检查,也可以在事务提交时检查。
检查这些操作执行后数据库中的数据库是否违背了完整性约束条件。
3 违约处理DBMS若发现用户的操作违背了完整性约束条件,就采取一定的动作,如拒绝(NOACTION)执行该操作,或级联(CASCADE)执行其他操作,进行违约处理以保证数据的完整性。
目前商用的DBMS产品都支持完整性控制,即完整性定义、检查控制和违约处理都是由DBMS来实现,不必由应用程序来完成,从而减轻了应用程序员的负担。
5.1 实体完整性是关系的两个不变性之一,关系的主属性的取值不能相同,主属性不能取空值,保证在一个关系中不存在两个完全相同的元组。
5.1.1 实体完整性定义关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。
对单属性构成的码有两种说明方法:一种是定义为列级约束条件;一种是定义为表级约束条件。
对多个属性构成的码只有一种说明方法:定义为表级约束条件。
实验五数据库的安全性控制一、实验目的:1. 通过实验加深对数据安全性的理解,并掌握SQL Server中有关用户登录的认证以及管理办法;2. 通过实验加深对数据库存储控制机制的理解,通过自主存取控制进行权限管理,熟悉SQL Server中角色管理;3.通过实验加深对数据安全性的理解,熟悉视图机制在自主存取控制上的应用。
二、实验内容1.设置SQL Server的混合安全认证模式。
在SQL Server中的对象资源管理器中设置安全认证模式。
2.在SQL Server中,利用“对象资源管理器”创建一个名为“U1”的登录用户和数据库用户,密码为111,并允许其登录S-T数据库。
3.在SQL Server中,利用代码创建一个名为“U2”的登录用户,密码为111;其相应的数据库用户名为lucky,并允许其登录S-T数据库。
4.用“u1”用户名登录后,执行对students表的查询操作,说明执行结果,并分析原因(建议:在启动一个SQL Server 2008窗口)。
分析:没有对u1进行其他操作的授权,只能登录而不能进行插入,修改等操作5.将students表的操作权限select和insert赋予数据库用户u1,并允许其向其它用户授权。
6.以“u1”用户名登录,执行对students和teacher表的查询操作,将该运行结果进行分析。
分析:对比第4题,对U1进行授权后可以进行相应的操作7.执行下列代码后,分析用户u2能否对s_t数据库的student表进行select 和update操作,为什么?并用相应的语句验证。
分析:首先grant给public组赋予了查询,插入,更新权限,然后给lucky用户赋予了对S表的所有权限,然后又revoke收回了lucky的权限,但并没有收回public组的权限,而deny却收回了lucky的更新权限,故查询可实现,而更新不可实现8.以sa登录数据库,在s_t数据库的stc表上创建选修了课程B001的视图st_view。
数据库实验报告课程:数据库原理及应用正文:一、实验目的1.理解索引和视图的概念。
2.掌握索引的使用方法。
3.掌握视图的定义和使用方法。
4.理解存储过程的概念,掌握存储过程的使用方法。
5.学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。
6.理解SQL Server2000验证用户身份的过程,掌握设置身份验证模式的方法。
7.理解登陆账号的概念,掌握混合认证模式下登陆账号的建立与取消方法。
8.掌握混合认证模式下数据库用户的建立与取消。
9.掌握数据库用户权限的设置方法。
10.理解角色的概念,掌握管理角色技术。
11.学会配制ODBC数据源。
了解使用ODBC来进行数据库应用程序设计,通过ODBC接口访问数据库并对数据库进行操作。
学习在Visual Basic中使用ADO控件访问后台的SQL Server数据库。
二、实验内容1.建立索引。
对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
USE JWGLIF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')DROP INDEX SC.SC_ind;GOUSE JWGLCREATE INDEX SC_ind ON SC (Cno,Grade DESC);2.视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。
3.在数据库JWGL中,完成第四章例1,例3~7中例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。
4.在Market数据库中,完成第四章习题5中(1)~(4)创建存储过程的操作。
第二章关系数据库1 .试述关系模型的三个组成部分。
答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
2 .试述关系数据语言的特点和分类。
答:关系数据语言可以分为三类:关系代数语言。
关系演算语言:元组关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
3 (略)4 .5 . 述关系模型的完整性规则。
在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则是指若属性 A 是基本关系R 的主属性,则属性 A 不能取空值。
若属性(或属性组)F 是基本关系R 的外码,它与基本关系S 的主码Ks 相对应( 基本关系R 和S 不一定是不同的关系),则对于R 中每个元组在 F 上的值必须为:或者取空值(F 的每个属性值均为空值);或者等于S 中某个元组的主码值。
即属性 F 本身不是主属性,则可以取空值,否则不能取空值。
6.设有一个SPJ 数据库,包括S,P,J,SPJ 四个关系模式:1)求供应工程J1 零件的供应商号码SNO:πSno(σJno=‘J1’(SPJ))2)求供应工程J1 零件P1 的供应商号码SNO:πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1 零件为红色的供应商号码SNO :πSno(πSno,,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR= ’红‘(P)))4)求没有使用天津供应商生产的红色零件的工程号JNO :πJno(SPJ)- πJNO(σcity=‘天津’∧Color= ‘红‘(S∞ SPJ∞ P)5)求至少用了供应商S1 所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ)7.试述等值连接与自然连接的区别和联系。
实验6:数据库的安全性
实验目的:熟悉不同的数据库的保护措施―――安全性控制,重点实践SQL Server 2000的安全性机制,掌握SQL Server 2000中关于用户、角色及操作权限的管理方法。
实验背景:
实验内容1:SQL Server 的安全模式
(1)设置SQL Server 的安全模式
要设置安全认证模式,用户必须使用系统管理员帐号,可以使用企业管理器来设置安全认证模式,步骤如下:
①展开服务器组,右击需要设置的SQL 服务器,从弹出的快捷菜单中选择“属性”命令
②在弹出的“属性”对话框中,打开“安全性”选项卡,
③选中“SQL Server 和Windows”模式。
注意:设置改变后,用户必须停止并重新启动SQL Server服务,才能让新设置生效!!
(2)添加SQL Server登录帐号
如果用户没有Windows NT/2000 帐号,则只能建立SQL Server帐号,可以使用企业管理器,也可以直接使用Transact-SQL语句。
①利用企业管理器添加SQL Server帐号展开服务器,选择“安全性”->“登录”项目。
右击“登录”文件夹,出现如下图所示的快捷菜单。
在弹出的快捷菜单中选择“新建登录”选项
,
单击确定,并再次输入确认密码,创建就完成了。
②也可以利用Transact-SQL添加,命令
SP_ADDLOGIN login_id [,passwd [, defdb [, deflanguage ] ] ]
(3)修改登录帐号的属性
①用企事业管理器来修改,双击要修改属性的登录帐号,在其属性对话框中进行修改。
sp_password [[@old=]’old_password’,] {[@new =]’new_password’}[,]@loginame=]’login’]
(4)删除登录帐号
①利用企业管理器删除
右单击要删除的帐号,从弹出的快捷菜单中选择“删除”命令。
②使用系统存储过程sp_droplogin来删除。
实验内容2:管理数据库用户
(1)添加数据库的用户
①利用企事业管理器添加SQL Server 用户。
在企事业管理器中展开服务器中的数据库文件夹,再展开要添加用户的数据库,右击“用户”,选择“新建数据库用户”命令,
打开“数据库用户属性”对话框,从“登录名”下拉框中选择一个登录帐号,
在“用户名”文本框中输入用户名,根据需要选中public 以外的角色。
出错了!!!刚才,把登录long删除了,系统还未刷新过来,换一个登录就好了,
成功!
②利用Transact-SQL添加SQL Server 用户
SP_GRANTDBACCESS ‘login’[,’name_in_db’[OUTPUT]]
(2)删除数据库用户
删除一个数据库用户相当于删除一个登录帐号在这个数据库中的映射。
①用企业管理器删除
右击要删除的用户,选择“删除”命令,并确认,即可。
②利用Transact-SQL删除用户,
SP_REVOKEDBACCESS [@name_in_db=]’name’。
实验内容3:管理数据库角色
(1)创建自定义数据库角色
①使用企业管理器创建数据库角色。
在企业管理器中展开服务器中的数据库文件夹,再展开要添加角色的数据库,右击角色目录,从弹出的快捷菜单中中选择“新建数据库角色“命令
打开“数据库角色属性”对话框,在“名称”文本框中输入数据库新角色的名称,并选中“标准角色”单选按钮。
单击对话框中的“添加”按钮,出现“添加角色成员”对话框,若不添加,则创建一个暂无成员的角色。
②使用Transact-SQL期创建数据库角色。
使用系统存储过程,sp_addrole可以创建数据库新角色,使用系统存储过程sp_addrolemember和sp_droprolemember 可以分别向角色中增加或从角色中删除成员。
例如在数据库中创建pubs_long新角色,并且将用户long 添加到该角色中,
(2)删除用户自定义的角色
不能删除一个在成员的角色,在删除这样的角色之前,应先删除其成员。
只能删除自定义的角色,系统的固定角色不能被删除。
①利用企业管理器删除用户自定义角色。
右击要删除的用户自定义角色,从弹出的快捷菜单中选择“删除”命令,在提示对话框中单击“确定”,该用户就被删除了。
②使用Transact-SQL删除用户自定义角色。
可以使用系统存储过程sp_droprole 删除用户自定义角色,如,
先用sp_droprlemember删除角色中的用户,
再把自定义角色删除,
实验内容4:权限管理
在SQL Server 上权限管理分为语句权限管理和对象权限管理两类。
语句权限管理是对用户语句或命令的权限管理;对象权限管理是系统管理员、数据库拥有者、数据库对象拥有者对数据库及其对象的操作权限的控制。
(1)利用企事业管理器管理权限
①利用企事业管理器管理权限
在企业管理器中展开服务器中的数据库文件夹,右击要修改权限的数据库,如pubs,从弹出的快捷菜单中选择“属性”命令,打开如图的对话框。
单击“权限”标签,
设置完毕后单击“确定”按钮使设置生效。
②利用企业管理器管理对象权限
在企业管理器中展开服务器中的数据库文件夹,曹展开要进行角色对象权限管理的数据库,如pubs,选中“角色”目录,在右窗格的角色列表中双击pubs_long角色,打开以下对话框,
单击“权限”按钮,打开“权限”对话框,其中列出了数据库中的所有对象可以执行的操作,给角色pubs_long 授予对表authors 的SELECT 权限,对表jobs禁INSERT 权限,
(2)使用Transact-SQL管理权限
①授权
SQL Server 的授权包括语句授权和对象授权两类,语句授权决定被授权的用户可以执行哪些操作,对象授权决定被授权的用户在描写的数据库对象上的操作权限。
语句授权
语句授权的命令格式,
GRANT {ALL| statement [,… n]} TO security_account [,…]
SQL Server 对每类用户都有特定的默认语句执行权限,如果要想执行默认语句权限之外的语句,则必须获得授权。
例:系统管理员授予注册名为long 的用户CREATE DATABASE 的权限。
例:将对jobs表的插入和删除的权限授予用户名为zl的用户,
例:将对jobs 表的job_id和job_desc列的修改权限授权给用户名为long的用户,
②收回权限
语句权限,
收回zl CREATE DATABASE 的权限,
对象权限,
使用REVOKE ,例:把jobs表的job_id和job_desc列的修改权限授权收回,。