SQL Server2000O数据库、数据库对象、安全管理(二)
(总分96, 做题时间90分钟)
一、选择题
1. 
以下关于DELETED和INSERTED表说法错误的是______。
  • A.这两个表是永久表 
  • B.它们都是SOL Server自动创建和管理的 
  • C.在执行UPDATE操作时,对被更新操作影响的所有数据行,更新前的数据(按行进行)保存到DELETED表中 
  • D.在执行INSERT操作时,新插入的数据同时被保存到INSERTED表中
A  B  C  D  
2. 
以下关于创建触发器的注意事项说法错误的是______。
  • A.当创建一个触发器时,必须指定名称 
  • B.当创建一个触发器时,必须指定在其上定义触发器的表 
  • C.触发器名称在数据库中并非是唯一的 
  • D.触发器可以引用临时表
A  B  C  D  
3. 
以下操作可以定义一个前触发器的是______。
  • A.INSERT
  • B.UPDATE
  • C.DELETE
  • D.以上全部
A  B  C  D  
4. 
修改触发器的SQL语句为______。
  • A.ALTER 
  • B.CREATE 
  • C.UPDATE 
  • D.MODIFY
A  B  C  D  
5. 
删除触发器的SQL语句为______。
  • A.ALTER 
  • B.DELETE 
  • C.UPDATE 
  • D.DROP
A  B  C  D  
6. 
修改存储过程的SQL语句为______。
  • A.ALTER 
  • B.CREATE 
  • C.UPDATE 
  • D.MODIFY
A  B  C  D  
7. 
删除存储过程的SQL语句为______。
  • A.ALTER 
  • B.DELETE 
  • C.UPDATE
  • D.DROP
A  B  C  D  
8. 
连接数据库过程中需要指定用户名和密码,这种安全措施属于______。
  • A.授权机制 
  • B.数据加密 
  • C.视图机制 
  • D.用户标识与鉴别
A  B  C  D  
9. 
数据库中的用户指______。
  • A.数据库系统管理员 
  • B.数据库对象拥有者 
  • C.普通用户 
  • D.以上全部
A  B  C  D  
10. 
数据库权限包括______。
    ①对DBMS进行维护的权限
    ②创建、删除和修改数据库对象
    ③对数据库数据的操作权限
  • A.①② 
  • B.①③ 
  • C.②③ 
  • D.①②③
A  B  C  D  
11. 
以下关于数据库中的用户及其权限说法错误的是______。
  • A.数据库系统管理员在数据库中具有全部的权限 
  • B.数据库对象拥有者对其所拥有的对象具有一切权限 
  • C.创建数据库对象的用户即为数据库对象拥有者 
  • D.普通用户只具有对数据库数据查询权限
A  B  C  D  
12. 
数据库中的用户权限最大的是______。
  • A.数据库系统管理员 
  • B.数据库对象拥有者 
  • C.普通用户 
  • D.数据库拥有者
A  B  C  D  
13. 
不属于SQL Server数据库安全认证过程的是______。
  • A.服务器的合法用户 
  • B.数据库的合法用户 
  • C.计算机用户 
  • D.具有相应的操作权限
A  B  C  D  
14. 
混合验证模式是指______。
  • A.非Windows身份验证 
  • B.SQL Server接受Windows授权用户 
  • C.SQL授权用户 
  • D.SQL Server接受Windows授权用户和SQL授权用户
A  B  C  D  
15. 
用户访问SQL Server数据库中的数据时,必须经过3个认证过程,其中第二个认证过程是验证______。
  • A.身份 
  • B.用户是否是数据库的合法用户 
  • C.数据库用户是否具有要进行的操作权限 
  • D.其他
A  B  C  D  
16. 
以下不是系统内置的登录账户的是______。
  • A.BUILTIN\Administrators 
  • B.Sa 
  • C.域名\Administrator 
  • D.Root
A  B  C  D  
17. 
删除SQL Server身份验证的登录账户时使用的系统存储过程是______。
  • A.sp_revokelogin 
  • B.sp_addlogin 
  • C.sp_deletelogin 
  • D.sp_droplogin
A  B  C  D  
18. 
删除Windows身份验证的登录账户时使用的系统存储过程是______。
  • A.sp_revokelogin 
  • B.sp_addlogin 
  • C.sp_deletelogin 
  • D.sp_droplogin
A  B  C  D  
19. 
建立Windows身份验证的登录账户时使用的系统存储过程是______。
  • A.sp_revokelogin 
  • B.sp_addlogin 
  • C.sp_grantlogin 
  • D.sp_insertlogin
A  B  C  D  
20. 
建立SOL Server身份验证的登录账户时使用的系统存储过程是______。
  • A.sp_revokelogin 
  • B.sp_addlogin 
  • C.sp_deletelogin 
  • D.sp_droplogin
A  B  C  D  
21. 
删除数据库用户时使用的系统存储过程是______。
  • A.sp_revokelogin 
  • B.sp_addlogin 
  • C.sp_deletelogin 
  • D.sp_dropuser
A  B  C  D  
22. 
在SQL Server 2000中,若某数据库的故障还原模型为“完全”(FULL),则能够对该数据库进行的备份操作是______。
  • A.仅完全备份 
  • B.仅日志备份 
  • C.仅完全备份和差异备份 
  • D.完全备份、差异备份和日志备份
A  B  C  D  
23. 
默认情况下,新建立的数据库有几个用户?______。
  • A.0 
  • B.1 
  • C.2 
  • D.3
A  B  C  D  
24. 
以下关于数据库用户的说法错误的是______。
  • A.数据库用户的来源是服务器上已有的登录账户 
  • B.让登录账户成为数据库的用户的过程称为“映射” 
  • C.一个登录账户只可以映射为一个数据库用户 
  • D.默认情况下,新建立的数据库只有一个用户:dbo
A  B  C  D  
25. 
在SQL Sever 2000中,User1是销售数据库中的用户,并只被授予了销售明细表数据的删除权限,则User1用户在该数据库中能够执行的操作是______。
  • A.删除销售明细表中的全部数据 
  • B.删除销售明细表中的指定数据 
  • C.查询销售明细表中的全部数据 
  • D.以上操作都可以
A  B  C  D  
26. 
在SQL Server 2000的某数据库中,设U1用户是R1角色中的成员,现已授予R1角色对T表具有SELECT和DEN YUPDATE权限,同时授予了U1用户对T表具有INSERT和UPDATE权限,则U1用户最终对T表具有的权限是______。
  • A.SELECT和INSERT 
  • B.INSERT和UPDATE 
  • C.SELECT、INSERT和UPDATE
  • D.INSERT
A  B  C  D  
27. 
在Transact-SQL语句中,用于收回权限的语句是______。
  • A.GRANT 
  • B.BACK 
  • C.REVOKE 
  • D.DENY
A  B  C  D  
28. 
在SQL Server 2000的某数据库中,有表T和下列类型的用户:
    Ⅰ.该数据库的拥有者    Ⅱ.表T的创建者    Ⅲ.普通用户U1    Ⅳ.Guest
    在该数据库中,需要经过授权才能对表T数据执行更改操作的用户是______。
  • A.仅Ⅲ 
  • B.仅Ⅲ和Ⅳ
  • C.仅Ⅱ、Ⅲ和Ⅳ
  • D.全部
A  B  C  D  
29. 
在Transact-SQL语句中,用于拒绝权限的语句是______。
  • A.GRANT 
  • B.BACK 
  • C.REVOKE 
  • D.DENY
A  B  C  D  
30. 
在Transact-SQL语句中,用于授予权限的语句______。
  • A.GRANT 
  • B.BACK 
  • C.REVOKE 
  • D.DENY
A  B  C  D  
31. 
在SQL Server 2000中,关于dbcreator角色,下列说法正确的是______。
  • A.该角色是SQL Server系统提供的服务器级角色 
  • B.该角色是SQL Server系统提供的数据库级角色 
  • C.该角色是系统管理员定义的服务器级角色 
  • D.该角色是系统管理员定义的数据库级角色
A  B  C  D  
32. 
在SQL Server 2000中,若希望数据库用户ACCT具有创建数据库对象的权限,较为合适的实现方法是______。
  • A.使ACCT只在dbcreator角色中 
  • B.使ACCT只在public角色中 
  • C.使ACCT只在db_owner角色中 
  • D.使ACCT只在dh_ddladmin角色中
A  B  C  D  
33. 
在SQL Server 2000中,某数据库中有角色R1和用户U1,U1是R1角色的成员,且只属于该角色。先对T表给R1只授予SELECT和DELETE权限,并授予U1对T表具有SELECT、UPDATE和DENYDELETE权限,则用户U1对T表可以执行的操作是______。
  • A.查询、删除和更改数据 
  • B.查询和更改数据 
  • C.查询和删除数据 
  • D.查询和更改表结构
A  B  C  D  
34. 
计算机系和教务处要对某数据库进行访问,计算机系全体教师对此数据库中的全部数据具有查询权,教务处全体人员对此数据库中全部数据具有查询、插入、删除和修改权。在SQL Server 2000中,下列安全控制方法最合理的是______。
  • A.为计算机系每个教师授予每个表的SELECT权,为教务处全体人员授予每个表的SELECT、INSERT、DELETE和UPDATE权 
  • B.为计算机系和教务处分别建立一个角色,将两个部门的每个职工设置为相应角色中的成员。将计算机系角色和教务处角色设置为此数据库的db_datareader角色中的成员,将教务处角色设置为此数据库的db_datawriter角色中的成员 
  • C.为计算机系和教务处分别建立一个角色,将两个部门的每个职工设置为相应角色中的成员。为计算机系角色授予每个表的SELECT权,为教务处角色授予每个表的SELECT、INSERT、DELETE和UPDATE权 
  • D.将计算机系和教务处的每个职工都设置为db_owner角色中的成员
A  B  C  D  
35. 
设在SQL Server 2000的某数据库中有用户user,该用户现没有任何权限。若希望授予该用户在该数据库中对全部用户表的数据具有INSERT、DELETE和UPDATE权限。对数据库工程师来说,下列做法实施起来最快捷且合理的是______。
  • A.将user添加到该数据库的db_owner角色中 
  • B.将user添加到dbcreator角色中 
  • C.将user添加到该数据库的db_datawriter角色中 
  • D.将该数据库中每张表的INSERT、DELETE和UPDATE权限授予user
A  B  C  D  
36. 
在SQL Server 2000中,public角色是系统提供的一个数据库角色。下列关于public角色的说法,错误的是______。
  • A.每个数据库用户都自动是该角色中的成员 
  • B.在不删除数据库用户的前提下,不能手工从该角色中删除成员 
  • C.该角色中的成员自动具有查询数据库中用户表数据的权限 
  • D.可以为该角色授予用户表的数据操作权
A  B  C  D  
37. 
以下关于角色叙述不正确的是______。
  • A.角色(Role)是数据库中具有相同权限的一组用户 
  • B.角色分为系统预定义的固定角色和用户根据自己的需要定义的用户角色 
  • C.系统角色又根据其作用范围的不同分为固定的服务器角色和固定的数据库角色 
  • D.而用户角色是为具体的数据库设置的
A  B  C  D  
38. 
以下关于固定服务器角色叙述不正确的是______。
  • A.用户可以添加、删除或更改固定的服务器角色 
  • B.用户的登录账户可以添加到固定的服务器角色中 
  • C.固定的数据库角色为管理数据库一级的权限提供了方便 
  • D.固定的服务器角色在服务器级上定义,这些角色具有完成特定服务器级管理活动的权限
A  B  C  D  
39. 
在数据库服务器中不允许更改数据库中所有用户表中的数据的固定数据库角色是______。
  • A.db_owner 
  • B.db_denydatawriter 
  • C.db_datawriter 
  • D.sysadmin
A  B  C  D  
二、填空题
1. 
设在SQL Server 2000中需创建一个名为db1的数据库。该数据库包含一个主数据文件和一个日志文件,这两个文件均存放在D盘根目录下。主数据文件的物理文件名为db1.mdf,逻辑文件名为db1_data,文件初始大小为100MB,不自动增长。日志文件全部采用系统默认设置。请补全下列创建数据库的语句:     CREATE DATABASE db1     ON(     NAME=db1_data,     ______,     SIZE=100,     FILEGROWTH=0)
2. 
在SQL Server 2000中,数据页的大小是8KB。某数据库表有1000行数据,每行需要5000B空间,则此数据库表需要占用的数据页数为______页。
3. 
设有顾客表(顾客号,姓名,所在地区),姓名和所在地区允许为空。现要统计每个地区的顾客数量,要求输出所在地区和人数。请补全下列SQL语句。     select ______ from 顾客表 group by 所在地区
4. 
在SQL Server 2000数据库中有两张表:商品表(商品号,商品名,商品类别,成本价)和销售表(商品号,销售时间,销售数量,销售单价)。用户需统计指定年份每类商品的销售总数量和销售总利润,要求只列出销售总利润最多的前三类商品的商品类别、销售总数量和销售总利润。为了完成该统计操作,请按要求将下面的存储过程补充完整。     CREATE PROC p_Sum     @year INT     AS     SELECT ______ WITH TIRS     商品类别,SUM (销售数量) AS 销售总数量,     ______ AS 销售总利润     FROM 商品表 JOIN 销售表 ON 商品表. 商品号=销售表. 商品号     WHERE year (销售时间) = @year     GROUP BY 商品类别     ORDER BY 销售总利润 ______
5. 
设有教师表(教师号,教师名,工资,所在系),现要建立统计每个系的教师平均工资的视图v_salary(dept, avg_salary)。请补全下列视图定义语句:     CREATE VIEW v_salary     AS     SELECT 所在系 As dept, ______     FROM 教师表     GROUP BY 所在系
6. 
在SQL Server 2000中,设要在表SC上建立一个前触发型触发器。请补充下列触发器定义语句:     CREATE TRIGGER tri_A ON SC     ______ UPDATE     As…
7. 
在出现系统故障后对数据库进行恢复时,恢复子系统需要建立事务标记的______队列和重做(REDO)队列。
8. 
SQL Server 2000内置的系统管理员账户是______。
9. 
若某SQL Server 2000实例的身份验证模式为Windows only,该实例的合法登录账户中,无法登录到该实例的账户是______身份的账户。
10. 
在SQL Server 2000中,设U1是SQL Server身份验证模式的数据库服务器登录账户,现希望U1在该数据库服务器上具有系统管理员权限。请补全下列语句:     EXEC sp_addsrvrolemember u 1, ______
11. 
在SQL Sever 2000中,设u1是某数据库中的用户,若要使u1在该数据库巾只具有查询全部用户表的权限。请补全如下语句:EXECsp_addrolemember '______', '______'
12. 
在SQL Server 2000中,要授予某数据库中的某个用户具有该数据库中全部用户数据表的插入、删除和修改权限,比较合理的做法是将该用户添加到系统提供的______数据库角色中。
13. 
在SQL Server 2000中,新建了一个SQL Server身份验证模式的登录账户LOG,现希望LOG在数据库服务器上具有全部的操作权限,下述语句是为LOG授权的语句,请补全该语句。     EXEC sp_addsrvrolemember 'LOG', ______
三、设计与应用题
设某商品经营管理系统使用SQL Server 2000数据库管理系统。在数据库中存在销售明细表,其建表语句为:
    CREATE TABLE 销售明细表(
    销售单据编号 varchar(8),
    商品编号 varchar(8),
    单价 money,
    数量 int,
    总价 money
    )
    为了保证数据的一致性,建有如下触发器:
    CREATE TRIGGER AutoCountSum
    ON 销售明细表 FOR INSERT, UPDATE
    AS
    DECLARE @UnitPrice money, @Quantity int
    DECLARE @Amount money
    SELECT @UnitPrice = 单价, @Quantity = 数量
    FROM inserted
    SET @Amount = @UnitPrice * @Quantity
    UPDATE 销售明细表 SET 总价=  @Amount
    WHERE 销售单据编号 IN(SELECT 销售单据编号 FROM inserted)
    AND 商品编号 IN(SELECT 商品编号 FROM inserted)
1. 
设系统运行一段时间后此表中有近一百万条记录,此时发现对该表的插入操作速度很慢,请分析插入速度慢的原因。     在不改变数据库服务器硬件和表结构、不清理数据的情况下,请说明应如何优化此表的插入操作。
2. 
在解决了①中的问题后,程序员在数据库中执行如下SQL语句:     SELECT 商品编号,sum(总价) FROM 销售明细表     WHERE 单价 > 50     GROUP BY 商品编号     请在不改变该SQL语句的情况下,给出提高该查询执行效率的方案。
3. 
在SQL Server 2000中,设有教师表(教师号,姓名,所在部门号,职称)和部门表(部门号,部门名,高级职称人数)。请编写满足下列要求的后触发型触发器(设触发器名字为tri_zc)。每当在教师表中插入一名具有高级职称(“教授”或“副教授”)的教师时,或者将非高级职称教师的职称更改为高级职称时,均修改部门表中相应部门的高级职称人数。(假设一次操作只插入或更改一个名称)
答题卡