实验二 SQL查询与视图
一.实验目的:
1.掌握SQL语言中SELECT语句的多种查询方式。 2.掌握对表建立与删除索引的方法。 3.掌握聚集函数的使用方法。 4.掌握集合查询方法。
5. 掌握视图的创建与查询方法。
二.实验内容:
1.建立与删除[索引]的方法。
在各表中,分别按代理商编号、客户编号、产品编号及订单编号建立索引。
2.单表查询,
① 从产品表中查询现有产品的库存量。
② 从客户表中查询“王五”的地址及代理商编号。 ③ 从代理商表中查询代理商“惠普”的提成金额。
④ 从订货项目表中查询编号为“444”的订单所订购的商品编号及数量。⑤ 分别求代理商和客户的总数。
⑥ 从订货项目表中,查询编号为0033的产品定货总数量。
3.多表查询
① 查询编号为300的客户通过的代理商的姓名和地址。
② 查询产品编号为0033、订货数量大于100的客户编号及其姓名。
③ 查询每个客户的订单,显示客户编号、客户名、订单编号及订货日期。④ 查询所有2000年以后订货项目。
⑤ 查询提成金额为100000以上(含100000)的代理商所对应的客户。
4、嵌套查询
分别用带有IN谓词的子查询和带比较运算符的子查询实现以下操作 ① 查询与“刘晨”在同一个系学习的学生。 ② 查询选修了课程名为“操作系统”的学生。
5.视图的建立与查询
① 建立含有订单号及拥有该订单的客户编号和代理商号三个字段的视图。 ② 查询所有订单的客户和代理商。
③ 建立一个选修了课程1或者选修了课程2的学生视图。 ④ 查询选修课程1的所有学生。
11
实验三 数据库的安全
一.实验目的
1.掌握SQL Server 中数据库安全性管理的策略与方法。
一.实验目的
1.掌握SQL Server 中数据库安全性管理的策略与方法。
二.实验内容
数据库的安全主要包括几个方面的内容:安全模式,SQL Server服务器安全, SQL Server
登录帐号, 角色, SQL Server用户和许可等内容. 安全模式包括如下内容: (1) 安全规划:
(2) 选择安全的形式:指选择用户登录的登录认证方式.
1.认证模式
认证是指当用户访问数据库系统时,系统对该用户的帐户和口令的确认过程。SQL Server可以识别两种类型的登录认证机制。
● SQL Server认证机制 ● Windows NT认证机制
当使用SQL Server认证机制时,SQL Server系统管理员定义SQL Server的登录帐户和口令。当用户连接SQL Server时,必须提供登录帐户和口令。
当使用Windows NT认证机制时,由Windows NT帐户控制用户对SQL Server系统的访问。这时用户不必提供SQL Server的登录帐户和口令就能连接到系统上,但是,在该用户连接之前,SQL Server系统管理员必须将Windows NT帐户定义为SQL Server的有效登录帐户(请参考Windows NT帐户管理方法)。
用户可以使用SQL Server企业管理器来设置服务器的认证模式。设置方法参见实验一。
2.登录管理
登录帐户是基于SQL Server服务器使用的用户名,可控制用户对数据库服务器的访问。在SQL Server中有一个特殊的登录帐户:sa,是系统管理员的简称,它在SQL Server系统和所有数据库中有全部的权限,不能被删除。
设置sa帐号密码: 单击相应服务器属下的 “Login”;右单击右窗格的用户名,选择 “属性”.
增加登录帐户的两种方法:
一是:从Windows NT组和用户中创建登录帐户和创建新的SQL Server登录帐户(参考Windows NT帐户管理方法)。
二是:使用SQL Server对象资源管理器创建登录帐户,方法如下: 在SQL Server对象资源管理器选择一服务器,选择“安全性”文件夹,在“安全性”文件夹中,右击“登录”,选择“新建登录”,则出现如下窗口:
12
在常规选项卡中输入登录名和口令;在服务器角色选项卡中选择相应服务器角色复选框;在数据库访问选项卡中选择要访问的数据库及指定该帐户所属的数据库角色。最后按[确定]即可。
用刚建立的登录帐户登录服务器:
先右击服务器,选择断开,再右击服务器,选择连接。按提示输入帐户名和口令即可登录。如果选择连接时不提示输入帐户/口令,可选择强制用户登录时验证帐户和口令(参见5.)
(3)配置安全角色
角色:SQL Server2000服务器操作和数据库访问许可的管理单位,角色可以把各个用户汇集成一个单元,以便进行许可管理。SQL Server提供了用于通常管理工作的预定义服务器角色、和数据库角色,以简化对某一个用户授予一些管理许可的工作。可在建立登录帐户时设置。
系统管理员给适当用户分配相应的角色是SQL Server服务器和数据库安全的关键之一. SQL Server2005服务器系统管理员或数据库所有者在设置数据库访问许可时,应先创建新的角色并将访问许可集中授予角色,然后再将需要拥有这一许可权限的用户加入到角色中, 加入到角色中的所有用户自动具有角色所拥有的访问许可权限.
常用固定服务器角色如下(通过“服务器角色”设置)
13
服务器角色 Bulkadmin Dbcreator Diskadmin Processadmin Securityadmin Serveradmin Setupadmin 含义(许可) 可以运行 BULK INSERT 语句 创建、更改、删除和还原任何数据库 管理磁盘文件 可以终止在数据库引擎 实例中运行的进程 可以管理登录名及其属性。具有 GRANT、DENY 和 REVOKE 服务器和数据库级别的权限。此外,还可以重置 SQL Server 登录名的密码 可以更改服务器范围的配置选项和关闭服务器 可以添加和删除链接服务器,并可以执行某些系统存储过程(如 sp_serveroption) 在SQL Server中进行任何活动。该角色的权限跨越所有其他固定服务器角Sysadmin 色。默认情况下,Windows BUILTIN\\Administrators 组(本地管理员组)的所有成员都是 sysadmin 固定服务器角色的成员
固定的数据库角色及许可(通过“用户映射-指定数据库-数据库角色成员”) 数据库角色 Public db_owner db_accessadmin db_datareader db_datawriter db_ddladmin db_securityadmin db_backoperator db_denydatareader db_denydatawriter 含义(许可) 维护全部默认的许可 可以执行数据库中技术所有动作的用户 可以添加、删除用户的用户 可以查看所有数据库中用户表内数据的用户 可以添加、修改或删除所有数据库中用户表内数据的用户 可以在数据库中执行所有DDL操作的用户 可以管理数据库中与安全权限有关所有动作的用户 可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行) 不能看到数据库中任何数据的用户 不能改变数据库中任何数据的用户
创建角色方法:用户只能创建数据库角色,只在其所在的数据库中有效,对其他数据库无效.
右单击 “角色”
授权:授予用户,用户组以及角色某种或某些许可权限,权限:一种对数据库对象的操作权
力。
用户登录到SQL Server服务器后,其所充当的角色和用户的许可,就决定了它们对数据库对象所能执行的操作。添加角色到固有角色,角色就具有相应固有角色所具有的授权。 方法:右键单击需将角色添加到其属下的固有角色。
“属性”---按“添加”. 创建SQL Server用户方法:右键单击需将创建角色的数据库属下的的 “用户”. SQL Server用户只能用于访问数据库,不能用于登录
4.许可管理
许可的种类:对象许可,数据库许可和固有角色的隐含许可
14
在SQL SERVER 系统中,把权利定义为许可,通过实行许可管理,维护数据的有序流动。可在用户权限中设定。
设置对象许可的方法:右键单击需设置许可的对象(以数据表为例) -----“属性”---单击相关项目
设置语句许可的方法:右键单击需设置语句许可的数据库名 -----“属性”---单击相关项目 授权
SELECT 授予、废除或拒绝对该对象的 SELECT 权限。 INSERT 授予、废除或拒绝对该对象的 INSERT 权限。 UPDATE 授予、废除或拒绝对该对象的 UPDATE 权限。 DELETE 授予、废除或拒绝对该对象的 DELETE 权限。 EXEC 授予、废除或拒绝对该对象的 EXECUTE 权限。 DRI 授权、废除或拒绝对该对象的声明引用完整性权限。
实验完成规划实施某部门SQL Server安全策略 具体要求如下: 1. 部门总监(1人):作为系统管理人员,允许任何操作。 名称:
服务器角色: 数据库角色: 权限:
2. 服务器登录安全管理员(1人):可设置和管理用户登录帐号,授权访问订单数据库。 3. 数据库维护人员(1人):可对订单数据库进行任何操作。 4. 数据录入人员(2人):可进行数据录入,不能创建与修改表结构及其它授权等操作。 5. 订单管理人员(2人):能对订单数据库中的订单表和项目表进行更新,其它表仅能查询。
6. 客户管理人员(2人):能对订单数据库中的代理商表和客户表进行更新,其它表
注意:以上人员的登录帐号和密码统一规划设置。
15