第4章 数据库安全性
一、选择题
1下述哪一个SQL语句用于实现数据存取的安全机制( )。
A.COMMIT
B.ROLLBACK
C.GRANT
D.CREATE TABLE
【答案】C
【解析】COMMIT是向数据库递交数据,ROLLBACK是回滚数据,CREATE TABLE是创建表,而GRANT是用来对用户权限进行管理,可以实现数据存取的安全机制。
2关于登录账号和数据库用户,下列各项表述不正确的是( )。
A.登录账号是在服务器级创建的,数据库用户是在数据库级创建的
B.创建数据库用户时必须存在该用户的登录账号
C.数据库用户和登录账号必须同名
D.一个登录账号可以对应多个数据库用户
【答案】C
【解析】登录账户属于SQL Server服务安全防线,用户只有拥有SQL Server服务登录账户,才能与SQL Server建立链接;数据库用户属于SQL Server数据库安全防线,SQL Server中的每个数据库都有自己的用户和角色,该数据库只能由它的用户和角色访问。它们是不同级别的账号,它们需要绑定,创建数据库用户时必须存在该用户的登录账号,一个登录账号可以对应多个数据库用户,但不需要同名。
3关于SQL Server的数据库角色叙述正确的是( )。
A.用户可以自定义固定角色
B.数据库角色是系统自带的,用户一般不可以自定义
C.每个用户只能拥有一个角色
D.角色用来简化将很多用户权限分配给很多用户这一复杂任务的管理
【答案】D
【解析】服务器级的角色建立在SQL服务器上,是系统预定义的,用户不能创建服务器角色,只能选择合适的服务器角色,但能定义数据库角色;一个数据库用户可以出现在多种角色中;角色是多权限分配给多用户这一复杂任务的管理方式。
4关于SQL Server的数据库权限叙述不正确的是( )。
A.SQL Server数据库的对象权限可以用GRANT分配,而语句权限不可以用GRANT分配
B.服务器权限能通过固定服务器角色进行分配,不能单独分配给用户
C.系统管理员能使用SQL Server执行任何任务
D.每个用户可以被分配若干权限,并且有可能把权限赋予其他用户
【答案】A
【解析】服务器级的角色建立在SQL服务器上,是系统预定义的,用户不能创建服务器角色,只能选择合适的服务器角色,SQL Server的数据库权限可以分为数据库对象权限和语句权限,对象权限和语句权限都可以通过GRANT和REVOKE来分配和收回,系统管理员具有最高的权限。
5保护数据库,防止未经授权或不合法的使用造成的数据泄漏、非法更改或破坏。这是指数据的( )。
A.安全性
B.完整性
C.并发控制
D.恢复
【答案】A
【解析】数据安全性是指防止未经授权或不合法的用户使用数据库。
6用于实现数据存取安全性的SQL语句是( )。
A.CREATE TABLE
B.COMMIT
C.GRANT和REVOKE
D.ROLLBACK
【答案】C
【解析】CREATE TABLE是建立基表的语句;COMMIT是提交事务的语句;ROLLBACK是回滚事务的语句;GRANT是授权语句,REVOKE是回收权限的语句。
7采用定义视图的机制在数据控制方面要解决的问题是( )。
A.数据安全性
B.数据完整性
C.数据库恢复
D.数据库并发控制
【答案】A
【解析】采用定义视图的机制在数据控制方面要解决的问题是数据安全性。
二、填空题
1数据的安全性是指( )。
【答案】保护数据库,防止未经授权或不合法的使用造成的数据泄漏、更改或破坏
2安全性控制的一般方法有( )、( )、( )、和( )视图的保护五级安全措施。
【答案】用户标识与系统鉴定;存取控制;审计;数据加密
3( )和( )一起组成了安全性子系统。
【答案】用户权限定义;合法权检查机制
4在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用( )语句,收回所授的权限使用( )语句。
【答案】GRANT;REVOKE
5( )、( )、( )和是计算机系统中的三类安全性。
【答案】技术安全类;管理安全类;政策法律类安全性
三、判断题
1DBMS提供授权功能控制不同用户访问数据的权限,主要目的是为了实现数据库的完整性。( )
【答案】×
【解析】DBMS提供授权功能控制不同用户访问数据的权限,主要目的是为了实现数据库的安全性。
2SQL Server有两种安全性认证模式:Windows NT和SQL Server。( )
【答案】×
【解析】SQL Server的安全性认证模式有两种:混合模式和集成模式。混合模式允许使用windows NT安全性认证模式或者SQL Server安全性认证模式,而集成模式只能够使用windows NT安全认证模式。SQL Server的缺省安全模式为混合模式。
3视图机制虽然有一定的安全保护功能,但不精细,往往不能达到应用系统的要求。( )
【答案】√
四、问答题
1什么是数据库的安全性?有哪些安全措施?
答:(1)数据库的安全性是指保护数据库,防止不合法的使用,以免数据的泄漏、非法更改和破坏。、
(2)数据库安全性控制的方法
①用户标识与系统鉴定:DBMS都要提供一定的方式供用户标识自己。在存取数据库的数据之前,用户首先要自我标识,系统对用户的标识进行核定,通过鉴定后,才提供数据库的使用权。常用的标识方法是用户名和口令字。
②存取权限的控制:用户被获准使用数据库之后,还要根据预定的用户权限进行存取控制,如某个用户只能读哪些数据库表,某个用户只能写哪些数据库表等。
③数据加密:以密码的方式存储数据。
2假设已建立了学生基本表Student(Sno,Sname,Ssex,Sage,Sdept),课程基本表Course(Cno,Cname,Ccredit),基本表SC(Sno,Cno,Grade),试用SQL的授权和回收语句完成下列操作:
(1)把查询Student表的权限授予用户U1。
(2)把对Student表和Course表的全部权限授予用户U2和U3。
(3)把对表SC的查询权限授予所有用户。
(4)把查询Student表和修改学生学号的权限授给用户U4。
(5)把对表SC的INSERT权限授予U5,并允许他再将此权限授予其他用户。
(6)DBA把在数据库SC中建立表的权限授予用户U8。
(7)把用户U4修改学生学号的权限收回。
(8)收回所有用户对表SC的查询权限。
(9)把用户U5对SC表的INSERT权限收回。
答:(1)GRANT SELECT ON TABLE Student TO U1;
(2)GRANT ALL PRIVILIGES ON TABLE Student,Course TO U2,U3;
(3)GRANT SELECT ON TABLE SC TO PUBLIC;
(4)GRANT UPDATE(Sno),SELECT ON TABLE Student TO U4;
(5)GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;
(6)GRANT CREATE1:AB ON DATABASE S C TO U8;
(7)REVOKE UPDATE(Sno)ON TABLE Student FROM U4;
(8)REVOKE SELECT ON TABLE SC FROM PUBLIC;
(9)REVOKE INSERT ON TABLE SC FROM U5;
3SQL中用户权限有哪几类?并做必要的解释。
答:SQL定义了如下6类用户权限供用户选择使用:
(1)SELECT:允许用户对关系或视图执行SELECT操作。
(2)INSERT:允许用户对关系或视图执行INSERT操作。
(3)DELETE:允许用户对关系或视图执行DELETE操作。
(4)UPDATE:允许用户对关系或视图执行UPDATE操作。
(5)REFERENCES:允许用户在定义新关系时,引用其他关系的主码作为外码。
(6)USAGE:允许用户使用已定义的域。