1、Bit1出生日期smalldatetime2专业名10所在系联系电话char11YCREATE TABLE XSQK(学号CHAR(6) NOT NULL ,姓名CHAR(8) NOT NULL,性别BIT NOT NULL,出生日期smalldatetime ,专业名CHAR(10) ,所在系 Char(10), 联系电话char(11) ;课程表(KC)课程号3课程名20教师开课学期Tinyint学时学分CREATE TABLE KC(课程号 Char(3) NOT NULL,课程名 Char(20) NOT NULL,教师 Char(10),开课学期 Tinyint ,学时 Tinyin
2、t ,学分 Tinyint NOT NULL 成绩表(XS_KC)成绩SmallintCREATE TABLE XS_KC(学号 Char(6) NOT NULL,课程名 Char(3) NOT NULL,成绩 Smallint 数据的实体完整性实验 V用SSMS分别将学生情况表(XSQK)的学号字段、课程表(KC)的课程号字段设置为主健用TSQL语句将成绩表(XS_KC)的学号、课程号字段设置为主健ALTER TABLE XS_KC ADD CONSTRAINT XS_KC_KEY PRIMARY KEY (学号,课程号) 数据的参照完整性实验用SSMS为成绩表(XS_KC)创建外键FK_
3、XSQK_ID,外键FK_ XSQK_ID参照学生情况表(XSQK)表的学号用TSQL语句成绩表(XS_KC)创建外键FK_ KC_ID,外键FK_ KC _ID参照课程表(KC)表的课程号ALTER TABLE XS_KC ADD CONSTRAINT FK_ KC_ID FOREIGN KEY (课程号) REFERENCES KC(课程号);数据的用户定义完整性实验用TSQL语句为学生情况表(XSQK)的姓名列创建一个唯一约束 ALTER TABLE XSQK ADD CONSTRAINT FK_XSQK_UNIQUE UNIQUE (姓名) 用SSMS为学生情况表(XSQK)的性别列创
4、建一个检查约束,使得性别的值为男或女用TSQL语句为成绩表(XS_KC)的成绩列创建一个检查约束,使得成绩的值在(0100)之间ALTER TABLE XS_KC ADD CONSTRAINT GRADEchk CHECK(成绩BETWEEN 0 AND 100);用SSMS语句课程表(KC)的学时列创建一个缺省约束,缺省值为60用TSQL语句课程表(KC)的学分列创建一个缺省约束,缺省值为2ALTER TABLE KC ADD CONSTRAINT FK_KC_DEFAULT DEFAULT 2 FOR 学分 将如下数据分别转换成文本数据或Excel的格式,并分别将其导入数据库的各个表中:专
5、业020101杨颖1980-7-20计算机应用计算机88297147020102方露露1981-1-15020103俞奇军1980-2-20信息管理88297151020104胡国强1980-11-7020105薛冰1980-7-29水利工程水利系88297152020201秦盈飞1981-3-10电子商务经济系88297161020202董含静1980-9-2588297062020203陈伟1980-8-788297171020204陈新江房建学生情况表(XSQK):课程表(KC):101计算机原理陈红45102计算方法王颐103操作系统徐格604104数据库原理及应用应对刚755105网
6、络基础吴江江106高等数学孙中文90107英语陈刚108VB程序设计赵红韦70成绩表(XS_KC):858788586376558057713. 理解默认值的概念和作用用语句创建名为Xi_default,值为 “计算机系”的默认值CREATE DEFAULT Xi_default AS 计算机系将默认值Xi_default绑定到学生表中的所在系的属性列上sp_bindefault Xi_default ,XSQK.所在系解除学生表所在系的属性列上的默认值sp_unbindefault 删除默认值Xi_default Drop default Xi_default4.理解规则的概念和作用用语句创
7、建规则“rule_kkxq”,用以限制插入该规则所绑定的列中的值只能取1、2、3、4、5、6CREATE RULE rule_kkxq AS INTCLUOMN IN (1,2,3,4,5,6) 将“rule_ kkxq”规则绑定到课程表的开课学期属性上,并执行以下语句,看看能否正常执行,为什么:Insert into 课程表Values(109,C语言,李方,8,64,4)sp_bindrule rule_kkxq ,KC.开课学期不能正常执行,因为数值8不在规则rule_kkxq所绑定的数据范围内 不解除规则,能否将规则rule_ kkxq直接删除?不能,需先解除规则才能删除规则rule_
8、 kkxq :sp_unbindrule DROP RULE rule_kkxq 5.数据的安全性实验:(1)设置身份验证模式 写出查看当前SQL Server身份验证模式的过程,即查看当前SQL Server系统到底是采用Windows身份验证还是混合身份验证模式。服务器-右键属性-选择安全性,即可查看当前SQL Server系统的服务器验证模式 将系统设置为Windows身份验证模式,重启SQL Server,使之生效并验证将系统设置为混合身份验证模式,重启SQL Server,使之生效并验证创建和管理登录账户 1)用对象资源管理器创建、查看、删除SQL Server登录账户分别创建两个登
9、录帐户LoginA、LoginA1,其登录密码分别为:123456、456,并指定LoginA登录默认的数据库为学生成绩数据库(XSCJ),指定LoginA1登录默认的数据库为master数据库。查看登录账户LoginA、LoginA1删除登录账户LoginA12)用T-SQL语句创建、查看、删除SQL Server登录账户用系统存储过程,分别创建两个登陆帐户LoginB、LoginB1,其登录密码分别为:666、888,登录后然后所连接到的数据库均为学生成绩数据库(XSCJ)。sp_addlogin LoginB666XSCJLoginB1888使用系统存储过程sp_helplogins查看
10、SQL Server登录账户注:查看登录账户的格式: exec sp_helplogins使用系统存储过程sp_droplogin从SQL Server中将登录账户LoginB1删除sp_droplogin loginame = 创建和管理数据库用户1)用对象资源管理器创建、查看、删除数据库用户 在学生成绩数据库(XSCJ)中创建数据库用户UserA,使其所对应的帐号为LoginA能否再创建一个数据库用户ABC,使其对应登录的帐号为LoginA,若不能写出其原因?不能,同一个数据库的数据库用户只能有一个登录账户“该登陆已用另一开立账户用户名”2)用语句创建、查看、删除数据库用户用系统存储过程s
11、p_grantdbaccess 在学生成绩数据库(XSCJ)中创建一个数据库用户UserB,使其所对应的登录帐号为LoginBsp_grantdbaccess UserB用系统存储过程sp_helpuser查看数据库用户sp_helpuser 用系统存储过程sp_ revokedbaccess删除数据库用户ABC1sp_revokedbaccess ABC1无法对用户 执行删除,因为它不存在,或者您没有所需的权限。创建和管理角色 1)服务器角色的管理 用对象资源管理器将登录帐户LoginA加到sysadmin的角色中。 用系统存储过程sp_addsrvrolemember将登录帐户LoginB
12、加到sysadmin的角色中。 sp_addsrvrolemember ,sysadmin 用系统存储过程sp_dropsrvrolemember删除登录账户LoginA的服务器角色sysadmin sp_dropsrvrolemember LoginA2)数据库角色的管理用对象资源管理器将数据库用户UserA添加到db_owner数据库的角色中用系统存储过程sp_addrolemember将数据库用户UserB添加到db_owner数据库角色中。sp_addrolemember db_owner,UserB用系统存储过程sp_droprolemember删除数据库用户UserB的db_own
13、er数据库角色sp_droprolemember 3)用户自定义角色的管理 在学生成绩数据库(XSCJ)中创建一个角色RoleB CREATE ROLE RoleB 将用户UserB加入到自定义的RoleB这个角色中 sp_addrolemember RoleB 将学生成绩数据库(XSCJ)中学生表的Select权限授予RoleB GRANT SELECT ON XSQKTO RoleB用帐户LoginB身份登陆,并学生成绩数据库(XSCJ)中执行 Create Table Test (aa varchar(10)Select * from 学生情况表 Select * from 成绩表并查看
14、以上各语句能否正常执行,为什么?如何才能使不能执行的语句执行?不行,因为UserB没有Create Table权限GRANT CREATE TABLE TO UserB如果用帐号LoginA登陆,上面的语句能否执行。可以从角色RoleB中去除用户UserB从学生成绩数据库(XSCJ)中删除用户UserBsp_dropuser UserB从学生成绩数据库(XSCJ)中删除角色RoleBsp_droprole RoleB从SQL Server中删除登陆帐户LoginBsp_droplogin 权限的授予与回收1)权限的授予 把查询XSQK表的权限授予用户UserA ON XSQK TO UserA
15、 把对KC表全部操作权限授予用户UserA GRANT SELECT ,INSERT, UPDATE, DELETE ON KC把对XS_KC表的查询权限授予所有用户GRANT SELECT ON XS_KCTO PUBLIC 把删除XSQK表和修改学生学号的权限授予用户UserAGRANT DELETE ON XSQKTO UserA 把插入XSQK表的权限授予用户UserA,并允许将此权限再授予其它用户GRANT INSERT WITH GRANT OPTION 把在学生成绩数据库(XSCJ)中建立表的权限授予用户UserAGRANT CREATE TABLE 2)权限的回收 撤销用户Us
16、erA修改学号的权限 REVOKE UPDATE(Sno) FROM UserA 撤销所有用户对XS_KC表的查询权限 REVOKE SELECT ON XS_KC FROM PUBLIC 撤销用户UserA对XSQK表的插入权限 REVOKE INSERT FROM UserA CASCADE 实训思考题一个用户要访问数据库须要经过哪几个安全认证阶段?答: 三个阶段及相应的安全认证过程: 第一阶段:用户首先要登录到 SQLServer 实例。在登录时,系统要对其进行身份验证,被认 为合法才能登录到 SQLServer 实例。第二阶段:用户在每个要访问的数据库里必须获得一个用户账号。SQL S
17、erver 实例将 SQL Server 登录映射到数据库用户账号上, 在这个数据库的用户账号上定义数据库的管理和 数据对象的访问的安全策略。第三阶段:用户访问数据库。用户访问数据库对象时,系统要检查用户是否具有访问数 据库对象、执行动作的权限,经过语句许可权限的验证,才能实现对数据的操作。简述登录账户和用户账户间区别与联系 登录账户是登录SQLServer 实例的账户;用户账户是访问数据库的账户.用户、角色和权限的职能,以及它们之间的关系1. 权限系统的所有权限信息。权限具有上下级关系,是一个树状的结构。2.用户应用系统的具体操作者,用户可以自己拥有权限信息,可以归属于0n个角色,它的权限集
18、是自身具有的权限、所属的各角色具有的权限、所属的各组具有的权限的合集。它与权限、角色 之间的关系都是n对n的关系。3.角色可以对许多拥有相似权限的用户进行分类管理,具有上下级关系,可以形成树状视图,父级角色的权限是自身及它的所有子角色的权限的综合。父级角色的用户、父级角色的组同理可推。服务器角色有哪些,并分别简述其功能?用户可以创建服务器角色吗?服务器角色有:sysadmin 可以在 SQL Server 中执行任何活动。serveradmin 可以设置服务器范围的配置选项,关闭服务器。setupadmin 可以管理链接服务器和启动过程。securityadmin 可以管理登录和 CREATE
19、 DATABASE 权限,还可以读取错误日志和更改密码。processadmin 可以管理在 SQL Server 中运行的进程。dbcreator 可以创建、更改和除去数据库。diskadmin 可以管理磁盘文件。bulkadmin 可以执行 BULK INSERT 语句。用户不可以创建服务器角色数据库角色有哪些,并分别简述其功能?用户可以创建数据库角色吗? 数据库角色有:db_owner 在数据库中有全部权限。db_accessadmin可以添加或删除用户ID。db_securityadmin可以管理全部权限、对象所有权、角色和角色成员资格。db_ddladmin可以发出ALLDDL,但不
20、能发出GRANT、REVOKE或DENY语句。db_backupoperatorDBCC、CHECKPOINT和BACKUPdb_datareader可以选择数据库内任何用户表中的所有数据。db_datawriter可以更改数据库内任何用户表中的所有数据。db_denydatareader不能选择数据库内任何用户表中的任何数据。db_denydatawriter不能更改数据库内任何用户表中的任何数据。用户可以创建数据库角色6、什么是数据库的安全性,可以通过哪些措施来保证数据库的安全性?数据库的安全性是指:保护数据库以防止非法使用所造成的数据泄密、更改或破坏.保证数据库的安全性的方法: 用户标识和鉴别、用户存取权限控制、定义视图、数据加密、安全审计以及事务管理和故障恢复等几类