数据库应用技术SQLServer篇第版

数据库应用技术SQLServer篇第版
数据库应用技术SQLServer篇第版

数据库应用技术——SQL Server 篇(第2版)

第 1 章数据库概述 1

1.1

订单管理系统概述 1

1.2

数据库基本原理 2

1.2.1 关系数据库系统概述

2

1.2.2 实体- 联系模型 2 1.2.3

关系模型 4

1.2.4 关系数据库标准语言

8

1.2.5 关系模型的规范化

9

习题11

第 2 章SQL Server 概述12

2.1 SQL Server 简介12

2.1.1 SQL Server 的发展及特性12 2.1.2 SQL Server 的环境要求13

2.2 SQL Server 的安装15

2.2.1 SQL Server 的应用环境设计15 2.2.2 SQL Server 的身份验证模式16 2.2.3 SQL Server 的安装17

2.3 SQL Server 的管理及开发工具21

习题28

45

第 3 章 数据库管理 29 3.1 SQL Server 数据库概念

29

3.1.1 数据库文件分类 29

3.1.2 页 30

3.1.3 数据库文件组 31

3.2 系统数据库及其表 32

3.3 创立数据库 33

3.3.1 创立数据库应具备的条件 33 3.3.2 在图形界面下创立数据库 34 3.3.3 用SQL 命令创立数据库

35

3.3.4 事务日志 38

3.3.5 查看数据库信息 39

3.4 管理和维护数据库 40

3.4.1 打开数据库 41

3.4.2 增减数据库空间 41

3.4.3 数据库选项的设定与修改

44

3.4.4 更改数据库名称 45

3.4.5

查看 SQL Server 上共有几个数据库

3.4.6 删除数据库 45

习题 46

第 4 章数据表管理47

4.1 表的基本概念47

4.1.1 订单管理中的数据要求47

4.1.2 数据表的三个键47

4.2 创立表48

4.2.1 使用图形界面创立表48

422 使用CREATE TABL语句创立表

50 4.3 表中的数据类型52

4.4 表的管理和维护53

4.4.1 查看表的定义信息53

4.4.2 修改表55

4.4.3 删除表56

4.4.4 查看表之间的依赖关系57

4.5 表数据的添加、修改和删除58

4.5.1 向表中添加数据59

4.5.2 修改表中的数据60

4.5.3 删除表中的数据61

4.6 使用约束62

4.6.1 主键(PRIMARY KEY约束62

4.6.2 唯一键(UNIQUE)约束63

4.6.3 检查(CHECK约束63

4.6.4 默认值(DEFAULT约

65 4.6.5

外键(FOREIGN KEY约束66 4.6.6

级联参照完整性约束67 4.7

标识列IDENTITY 68

习题69

第 5 章数据查询70

5.1

简单SELECT语句72

5.1.1

SELECT语句的语法格

72

5.1.2

基本的SELECT语句72 5.1.3

使用INTO子句74

5.1.4

使用WHER子句74

5.1.5

使用ORDER B子句76 5.2

SELECT语句的统计功能77 5.2.1

使用集合函数77

5.2.2

使用GROUP BY子句79

5.2.3 使用COMPUTE B子句

80

5.3 SELECT语句中的多表连

接81

5.3.1

交叉连接82 5.3.2

内连接83 5.3.3

外连接83 5.3.4 自连接85

5.3.5 合并结果集86

5.4 子查询86

5.4.1 比较测试中的子查询87

5.4.2 集合成员测试中的子查询87

5.4.3 存在性测试中的子查询87

5.4.4 批量比较测试中的子查询87

5.4.5 使用子查询向表中添加多条记录88

5.5 使用SQL Server Management Studio 进行数据查询与维护88

5.5.1 查询设计器简介88

5.5.2 查询设计器的应用实例90

习题92

第 6 章视图和索引93

6.1 视图的基本概念93

6.1.1 视图的基本概念93

6.1.2 视图的优点和缺点95

6.2 视图的创立和查询95

6.2.1 在SQL Server Management Studio 下创立视图96 622 使用CREATE VIEV创立视图98

6.2.3 视图数据的查询99

6.3 视图的维护99

6.3.1 查看视图的定义信息100 6.3.2

查看视图与其它对象的依赖关系6.3.3

修改视图101

6.3.4

删除视图104

6.4 经过视图修改表数据

104

6.5

索引概述105

6.5.1 SQL Server 中数据的存储与访问6.5.2

索引的作用106

6.5.3

索引的分类106

6.6

创立索引107

6.6.1 系统自动创立索引

108

6.6.2 在图形界面下创立索引

109

6.6.3

使用CREATE INDEX语句创立索引

6.7

管理和维护索引111

6.7.1 查看和修改索引信息

111

6.7.2

删除索引112

6.7.3 索引的分析与维护

113

习题117

第7 章Transact-SQL 编程118 7.1 批处理、脚本和注释118 100

105 110

7.1.1 批处理118

SQLServer数据库安全配置规范

SQLServer数据库安全配置规范

1.概述 1.1. 目的 本规范明确了SQL Server数据库安全配置方面的基本要求。为了提高SQL Server数据库的安全性而提出的。 1.2. 范围 本规范适用于XXXX使用的SQL Server数据库版本。

2.配置标准 2.1. 补丁 2.1.1.安装数据库最新补丁 【目的和操作】连接微软SQLServer网站,获得各个最新的补丁包和补丁集合。 2.2. 网络配置 2.2.1.隐藏服务器 【目的和操作】在企业管理器中选择数据库服务器的属性,网络配置,TCP/IP 属性,选中其中的“隐藏服务器”选项。 该操作可以通过设置IPSE策略过滤UDP1434端口完成。 2.2.2.去掉不必要的协议 【目的和操作】默认情况下,SQLSERVER同时安装TCP/IP和管道,在企业管理器中选择数据库服务器的属性,网络配置,删除管道。 【影响】首先确认用户或者应用程序不使用管道来通讯。只使用Windows进行身份验证并需要远程维护必须使用管道。 2.2. 3.改变默认通信端口 【目的和操作】在企业管理器中选择数据库服务器的属性,网络配置,TCP/IP 属性,默认情况下是TCP 1433端口,请修改该端口为新的端口。 再使用Windows的IPSEC安全策略,禁止非允许的IP地址访问此端口。 【影响】影响使用默认端口的远程访问,要求用户先确认不影响其他操作。

2.2.4.使用通讯协议加密 【目的和操作】使用SSL加密协议。 【影响】影响使用默认端口的远程访问,要求用户先确认不影响其他操作。2.2.5.网络连接访问控制 【目的】在操作系统或者相应的网络设备上设置网络访问控制 【具体配置】 1、禁止非数据库应用系统IP连接UDP1434、TCP1433(或者修改后的通 讯端口)的连接 2、禁止非数据库应用系统IP连接TCP445/139端口的连接。 【影响】根据需要选择。会影响普通的数据库连接。 2.3. 审核设置 2.3.1.设置审核级别 【目的】设置SQL Server的审核选项。 【具体配置】 展开一个服务器组。右击一个服务器,再单击"属性"。在"安全性"选项卡 的"身份验证"下,在"审核级别"中选择在 SQL Server 错误日志中记录的用 户访问 Microsoft? SQL Server?的级别:"全部"表示审核成功的和失败的 登录尝试。 2.3.2.设置日志目录权限 【目的】限制日志目录的权限,防止对日志目录的非授权访问。 【具体配置】 日志通常保留在:SQL Server安装目录\MSSQL\LOG\ 设置目录权限为:administrator, system(完全控制),如果有服务账号, 也加上服务账号的权限。 【影响】 如果SQL Server服务不是以localsystem而是以其他账号运行,那么也设置 该账号有完全控制的权限

SQLServer数据库基准安全配置标准

MS SQL Server 数据库 基准安全配置标准 目录 1. 将SQL SERVER身份验证设置为仅限WINDOWS (2) 2. 安装最新的补丁更新程序 (2) 3. 优化服务 (2) 4. 限制SQL SERVER 只采用TCP/IP (3) 5. 帐户 (3) 5.1. 使用最低权限帐户运行SQL S ERVER (3) 52 为SA帐号设置强壮的口令 (3) 53 删除SQL来宾用户帐户 (5) 54 删除BUILTIN\A DMINISTRATORS 服务器登录 (5) 5.5. 不为公共角色授予权限 (5) 6. 文件和目录 (5) 6.1. 验证对SQL S ERVER安装目录的访问权限 (6) 6.2. 验证E VERYONE组是否不具有对SQL S ERVER文件的访问权限 (6) 63 保证安装日志文件的安全 (7) 7. SQL SERVER 数据库对象 (7) 7.1. 删除示例数据库 (7) 7.2. 保证存储过程的安全 (7) 7.3. 限制CMD E XEC对SYSADMIN角色的访问权限 (9) 8. 审核和日志 (11)

1.将SQL Server身份验证设置为仅限Windows 应当对SQL Server进行配置,使其支持仅限Win dows身份验证,因为这种验证方式有诸多优点。不必在网络上传送凭据;可避免在数据库连接字符串中嵌入用户名和密码;更易于进行安全管理,因为只需要与一个Windows安全模块而不是另外的SQL Server安全模块打交道;密码到期期间的登录安全性得到提高;最低限度的长度要求及帐户锁定策略。 2. 安装最新的补丁更新程序 包括最新的Windows操作系统以及SQL Server的Service Pack。 3. 优化服务 SQL服务安装程序运行期间将安装以下四个Windows服务: MSSQLSERVER(对于命名实例,则为MSSQL$InstanceNam?。此为SQL Server数据库引擎,是唯一的强制安装服务。 SQLSERVERAGENT (对于命名实例,则为SQLAgent$lnstanceName)。可 借助此支持服务制定命令执行计划及在出错时通知操作人员。 MSSQLServerADHelper。它可提供Active Directory集成服务,包括数据库实 例注册。 Microsoft Search。它可提供全文搜索能力。在任何情况下均须通过本地系统帐户 来运行此服务。 只有MSSQLSERVER数据库引擎是必备的。其余服务提供了附加功能,只在特定情况下才需要使用。如并非必需,请禁用这些服务。 注意:不应将SQL Server配置为以本地系统帐户或本地Administrators组的任何成员

SqlServer数据库安全加固

SQLServer数据库安全配置基线加固操作指 导书 佛山供电局信息中心 2014年4月

目录 1.1 SQLServer数据库安全基线要求 (3) 1.1.1 应对登录操作系统的用户进行身份标识和鉴别 (3) 1.1.2 禁止用Administrator或System用户启动数据库 (4) 1.1.3 密码策略 (4) 1.1.4 用户名的唯一性 (5) 1.1.5 应启用访问控制功能 (5) 1.1.6 管理用户的角色分配权限 (6) 1.1.7 实现操作系统和数据库系统特权用户的权限 (6) 1.1.8 删除多余账户 (6) 1.1.9 审计功能 (7) 1.1.10 审计记录要求 (7) 1.1.11 安装最新补丁 (8) 1.1.12 删除默认安装数据库 (8) 1.1.13 删除不必要的存储过程 (9)

1.1 SQLServer数据库安全基线要求 1.1.1 应对登录操作系统的用户进行身份标识和鉴别 控制台根目录下的SQL Server组/数据库,右建打开数据库属性, 选择安全性,将安全性中的审计级别调整为“全部”,身份验证调整 为“SQL Server 和Windows” SQL Server 2000 SQL Server 2005

1.1.2 禁止用Administrator或System用户启动数据库 1.1.3 密码策略

1.1.4 用户名的唯一性 户名。 为每个管理员添加专门的用户名,建议实名制。 进入“SQLServer管理器->安全性->登陆名(右键)->新建用户名” 进行添加数据库用户名。 1.1.5 应启用访问控制功能

SQLServer数据库使用心得

SQLServer数据库使用心得 摘要:ASP+Access的组合方式不能满足现有编程需要,在使用ASP+SQLServer的组合方式中经常遇到的一些问题 关键词:ASPAccess数据库SQLServer数据库 我刚开始学习编写ASP代码时,一般都使用Access数据库,因为它操作简便并且功能强大。ASP+Access的组合方式使用方便,代码执行速度快,很适合做一些中小型网站、聊天室、论坛、网上商城等中小型程序。 但是,从数据安全和数据存贮量的角度考虑,ASP+Access的组合方式无疑存在着很大的弊端:一是数据库可以被入侵者使用网络工具下载;二是Access数据库的存储量有限,当数据记录过多时,会导致相应的程序代码出错或者没有响应。 基于上述原因,我开始使用SQLServer数据库,在实际应用中遇到了很多问题,我通过查找参考书和网络论坛解决了其中的一部分,现总结如下几点,与大家共同探讨一下。 …sa?登录失败。原因:未与信任SQLServer连接相关联 当你确认自己的SQLServer安装使用正常,数据库连接代码没有错误,数据库也附加成功,出现上述错误时,请检查SQLServer属性中安全性配置的身份验证方式,应该使用SQLServer和Windows混合认证方式,如果使用的是仅Windows认证方式,就会显示该项错误提示。 刚开始使用SQLServer数据库的时候,由于不了解认证方式的区别,我以为是自己的SQLServer数据库安装有问题,重装了几次,费时费力还没有解决问题,幸好网络上高手众多,才发现原来是如此简单的一个认证方式的原因,令人汗颜。 2ACCESS转化成SQLServer2000需要注意的几个问题 2.1转换的方法 (1)打开SQLServer企业管理器“控制台”下“工具”中的“数据转换服务”中的“数据导入”;(2)库,然后确定。(3)选择目的,选择用于SQLServer的microsoftOLEDB 提供程序;服务器选择,如果是本机,默认(local);认证方式两种选择均可;数据库可

sqlserver数据库安全配置规范

竭诚为您提供优质文档/双击可除sqlserver数据库安全配置规范 篇一:sqlserver2000的安全配置 sqlserver2000的安全配置 sqlserver2000的安全配置在进行sqlserver2000数据库的安全配置之前,首先你必须对操作系统进行安全配置,保证你的操作系统处于安全状态。然后对你要使用的操作数据库软件(程序)进行必要的安全审核,比如对asp、php 等脚本,这是很多基于数据库的web应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似,‘;@/等字符,防止破坏者构造恶意的sql语句。接着,安装sqlserver2000后请打上补丁sp1以及最新的sp2。 下载地址是:/sql/downloads/2000/sp1.asp 和/sql/downloads/2000/sp2.asp 在做完上面三步基础之后,我们再来讨论sqlserver的安全配置。 1、使用安全的密码策略 我们把密码策略摆在所有安全配置的第一步,请注意,很多数据库帐号的密码过于简单,这跟系统密码过于简单是

一个道理。对于sa更应该注意,同时不要让sa帐号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步!sqlserver2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非你确认必须使用空密码。这比以前的版本有所改进。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。 比如使用下面的sql语句: usemaster selectname,passwordfromsysloginswherepasswordisnull 2、使用安全的帐号策略 由于sqlserver不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到sqlserver 实例(例如,当其它系统管理员不可用或忘记了密码)时才使用sa。建议数据库管理员新建立个拥有与sa一样权限的超级用户来管理数据库。安全的帐号策略还包括不要让管理员权限的帐号泛滥。 sqlserver的认证模式有windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登陆来接触数据库的话,可以在帐号管理中把系统

SQLServer数据库安全策略

SQLServer 高振清 (健雄职业技术学院,江苏[摘 要]文中论述了SQLServer数据库安全机制。[关键词]SQLServer;数据库;安全策略—————————————————————————— —作者简介:高振清,男,江苏太仓人,学士,讲师,研究方向:计算机与自动化。 1.前言 微软的SQL Server 数据库是一种广泛使用的数据库,很多电子商务网站、企业内部信息化平台等都是基于SQL Server 数据库上的, 但是数据库的安全性还没有被人们跟系统的安全性等同起来,一般认为只要把网络和操作系统的安全搞好了,那么所有的应用程序也就安全了。而且一些安全公司也忽略数据库安全,这就使数据库的安全问题更加严峻。数据库系统中存在的安全漏洞和不当的配置通常会造成严重的后果,而且难以发现。数据库应用程序通常同操作系统的最高管理员密切相关。SQL Server 数据库又是属于“端口”型的数据库,这就表示任何人都能够用分析工具试图连接到数据库上,从而绕过操作系统的安全机制,进而闯入系统、 破坏和窃取数据资料,甚至破坏整个系统。从而对SQL Server 数据库的安全策略进行探讨有着极其重要的现实意义。 2.SQLServer数据库安全体系结构 SQL Server 数据库安全性管理是建立在认证(authentication)和访问许可(permission)两者机制上。认证是指来确定登陆SQL Server 数据库的用户的登陆帐号和密码是否正确,以此来验证其是否具有连接SQL Server 数据库的权限。但是,通过认证阶段并不代表能够访问SQL Server 数据库中的数据,用户只有在获取访问数据库的权限之后,才能够对服务器上的数据库进行权限许可下的各种操作(主要是针对数据库对象,如表、视图、存储过程等),这种用户访问数据库权限的设置是通过用户帐号来实现的。同时在SQL Server 数据库中,角色作为用户组的代替物大大地简化了安全性管理。在SQL Server 数据库的安全模型中主要包括SQL Server 登录、数据库用户、权限、角色。由图1可见,SQL Server 的安全控制策略是一个层次结构系统的集合。 图1SQLServer安全性控制策略示意图3.3.1 SQL 注入就是利用插入有害字符进行攻击的技术,也称SQL 注射式攻击。SQL 注入攻击是攻击者把SQL 语句插入到Web 表单的输入域或页面请求查询字符串中,欺骗服务器执行恶意SQL 语句的操作,它是应用程序级攻击Web 主要途径,是黑客攻击的最常见手段,是构建网络安全的一大障碍。目前来说,对于SQL 注入攻击的防范主要是要找到一种能保证代码兼容性的方法。 SQL Server 虽然没有直接提供防止SQL 注入攻击的对象和方法, 但它却提供了丰富的、强大的防御工具。合理地利用这些机制,对防止SQL 注入攻击很重要。 其次,构建安全的参数类型,进一步过滤掉组装的SQL 语句对Web 站点的注入攻击。把用户验证的SQL 语句构造到存储过程中是行之有效的方法。如下面的Proc_IsUserValid 存储过程: Create Procedure Proc IsUserValid @UserName Varchar(32),@Password Varchar(32)As Select Count(*)from Users Where UserName=@U serN ame And Cast (Password As Varbinary)=Cast (@Password As Varbinary) Go 然后就是使用弱权账户来间接访问数据库。下面是实现授权给SafeUser 帐户一个缺乏 “drop table ”权限的数据库脚本,SafeUser 账户除了调用Proc_IsUserValid 外没有任何其它权限。 Create DataBase WebLogin Go Use WebLogin Go Create table Users (UserName Varehar (32)Not Null , Password Varchar(32)Not Null)Go Insert Into Users (UserName ,Password) —79—

相关文档
最新文档