第12章 SQL Server的安全管理
浅谈SQL Server数据库应用时的安全措施

Technology Analysis技术分析DCW95数字通信世界2021.030 引言在人们的日常生活中,计算机的使用愈加频繁,数据库作为计算机中不可或缺的一个重要组成部分,能够让网络运行过程中的后台存储空间得到进一步的扩大。
但需要注意的是,相应数据库的使用虽然能够给人们的日常生活带来便利,其依旧无法得到解决的安全问题,也很可能会让人民群众的个人隐私信息受到侵害。
要想让数据库能够安全的进行使用,相关研究人员就须采取必要的措施来保障日常数据库的正常运行。
1 数据库安全概述想要对SQL Server 数据库的应用安全措施进行深入的探讨与研究,首先要对数据库安全这一概念有一个全面的认知。
所谓数据库安全,指的是在数据库使用中,其相关信息拥有一定的一致性,完整性,可用性和保密性。
所谓的信息一致性,指的是数据库中的信息与实际信息高度一致,不存在信息传输过程中的信息走样和信息虚假的现象。
所谓的信息完整性,指的是数据库在进行某样信息抓取的过程中,数据库所获得的信息与实际的信息完全相同,并不存在断章取义或局部抓取等现象。
所谓的信息可用性,指的是数据库中所抓取的所有信息都有较大的用途,用户在进行该信息的获取时,能够通过该信息达到一定的目标或使用效果,数据库中不存在无效信息。
而信息保密性,指的是用户在数据库中所留下的个人信息与用户在进行信息查询收集过程中所留下的信息查询痕迹是保密的,第三方无法通过非法手段进行相应个人信息和信息查询痕迹的获取。
需要注意的是,数据库安全与数据库管理系统有十分密切的联系,倘若数据库管理系统出现问题,那么数据安全就无法得到充分的保障,当然数据安全除了与数据库管理系统有密切联系之外,还与应用程序以及进行操作的网络环境有十分密切的关联,因此,研究者在对数据库安全问题进行分析与研究的过程中,除了要考虑到数据库管理系统的建设使用规范之外,还需要对其他可能会对数据库安全产生影响的因素进行深入的研究与探讨。
Microsoft SQL Server安全配置基线

Microsoft SQL Server数据库系统安全配置基线中国移动通信公司管理信息系统部2012年 4月版本版本控制信息更新日期更新人审批人V1.0 创建2009年1月V2.0 更新2012年4月备注:1.若此文档需要日后更新,请创建人填写版本控制表格,否则删除版本控制表格。
目录第1章概述 (4)1.1适用范围 (4)1.2适用版本 (4)1.3实施 (4)1.4例外条款 (4)第2章帐号与口令 (5)2.1口令安全 (5)2.1.1删除不必要的帐号* (5)2.1.2SQLServer用户口令安全 (5)2.1.3根据用户分配帐号避免帐号共享* (6)2.1.4分配数据库用户所需的最小权限* (6)2.1.5网络访问限制* (7)第3章日志 (8)3.1日志审计 (8)3.1.1SQLServer登录审计* (8)3.1.2SQLServer安全事件审计* (8)第4章其他 (10)4.1安全策略 (10)4.1.1通讯协议安全策略* (10)4.2更新补丁 (10)4.2.1补丁要求* (10)4.3存储保护 (11)4.3.1停用不必要存储过程* (11)第5章评审与修订 (13)第1章概述本文档规定了中国移动通信有限公司管理信息系统部门所维护管理的SQL Server 数据库应当遵循的数据库安全性设置标准,本文档旨在指导系统管理人员或安全检查人员进行SQL Server 数据库的安全合规性检查和配置。
1.1 适用范围本配置标准的使用者包括:数据库管理员、应用管理员、网络安全管理员。
本配置标准适用的范围包括:中国移动总部和各省公司信息化部门维护管理的SQL Server数据库系统。
1.2 适用版本SQL Server系列数据库。
1.3 实施本标准的解释权和修改权属于中国移动集团管理信息系统部,在本标准的执行过程中若有任何疑问或建议,应及时反馈。
本标准发布之日起生效。
1.4 例外条款欲申请本标准的例外条款,申请人必须准备书面申请文件,说明业务需求和原因,送交中国移动通信有限公司管理信息系统部进行审批备案。
(完整版)SQL-Server-2008的安全设置技巧方法详解(转)

Sqlserver 2008数据库安全设置方法目录一、服务器身份验证 (1)1.验证登录模式 (1)二、SQL Server服务的运行身份 (1)1.用户身份验 (1)三、sa密码的安全性 (1)1.修改sa的用户名 (1)四、端口相关问题 (2)1.修改端口号 (2)2. 卸载SQL的不安全组件 (2)3. 权限设置 (2)五、数据库安全策略 (3)1.使用安全的密码策略 (3)2.使用安全的帐号策略 (3)3.加强数据库日志的记录 (3)4.管理扩展存储过程……………………………………………………5.使用协议加密 (4)6.不要让人随便探测到你的TCP/IP端口 (4)7.修改TCP/IP使用的端口 (5)8.拒绝来自1434端口的探测 (5)9.对网络连接进行IP限制 (5)数据库安全设置方法一、服务器身份验证MSSQL Server 2008的身份验证模式有两种:一种是Windows 身份验证模式, 另一种是SQL Server和Windows身份验证模式(即混合模式)。
对大多数数据库服务器来说,有SQL Server 身份验证就足够了,只可惜目前的服务器身份验证模式里没有这个选项,所以我们只能选择同时带有SQL Server和Windows身份验证的模式(混合模式)。
但这样就带来了两个问题:1、混合模式里包含了Windows身份验证这个我们所不需要的模式,即设置上的冗余性。
程序的安全性是与冗余性成反比的。
2、所谓Windows身份验证,实际上就是通过当前Windows管理员帐户(通常为Administrator)的登录凭据来登录MSSQL Server。
使用Windows身份验证,会增加Administrator密码被盗的风险。
为解决以上两个问题,我们需要限制混合模式里的Windows身份验证。
方法如下:打开Microsoft SQL Server Management Studio,点击安全性->登录名,将Administrator对应的登录名删除即可。
sql server所采用的安全机制

sql server所采用的安全机制
SQL Server采用了多种安全机制来保护数据的安全性和隐私性。
以下是一些常见的安全机制:1、身份验证:SQL Server支持多种身份验证方式,包括Windows 身份验证和SQL Server身份验证。
Windows身份验证使用操作系统的用户和密码,SQL Server身份验证使用SQL Server数据库的用户名和密码。
2、权限和访问控制:SQL Server使用基于角色的权限模型来管理对数据库对象的访问权限。
管理员可以创建不同的角色,并将用户分配给相应的角色以控制其对数据库对象的访问权限。
3、加密:SQL Server支持数据加密,可以对敏感数据进行加密存储,保护数据的机密性。
4、传输层安全性:SQL Server支持使用SSL/TLS 协议对数据库连接进行加密,确保数据在传输过程中的安全性。
5、审计和日志:SQL Server提供了审计和日志功能,可以记录数据库的操作历史,包括登录信息、数据更改和访问权限的变更等,以便对数据库进行监控和追踪。
6、防火墙和网络安全:SQL Server可以配置防火墙以限制对数据库的访问,并支持其他网络安全相关的功能,如IP过滤、端口控制等。
需要注意的是,SQL Server的安全性还取决于操作系统和网络的安全性。
为了确保数据库的综合安全性,还需要在操作系统和网络层面采取相应的安全措施。
SQL Server的安全管理

固定服务器角色
固定数据库角色
自定义角色的管理
8
docin/sundae_meng
(一) 固定服务器角色
固定数据库角色 db_accessadmin db_backupoperator db-_datareader db_datawriter
db-_ddladmin
db_denydatareader db_denydatawriter db_owner
Db_securityadmin
对应的数据库级权限 可以管理对数据库的访问, 可以添加或删除用户ID 可以备份数据库,可以发出DBCC、CHECKPOINT和BACKUP语句 可以读所有用户表中的所有数据 可以在所有用户表中添加、删除和更新数据
6
docin/sundae_meng
(三) 对象的所有权
权限用于控制用户对数据库对象的访问,以及指定用户对数据库可以执行的操 作。用户可以设置服务器和数据库的权限,服务器权限允许数据库管理员执行管理 任务,数据库权限用于控制对数据库对象的访问和语句执行。 1.服务器权限
服务器权限允许数据库管理员执行管理任务。这些权限定义在固定服务器角色 (fixed Server roles)中。固定服务器角色的权限可以分配给其他角色,但固定 服务器角色本身是不能修改的。一般只把服务器权限授给DBA,他不需要修改或者授 权给别的用户登录。 2.数据库对象权限
数据库对象权限指对已存在的数据库对象的操作权限,包括对数据库对象的 SELECT、INSERT、UPDATE 、DELETE和EXECUTE权限。
SQL Server 2012数据库管理与开发第12章 SQL Server 2012维护管理

•
除了系统数据库以外,其他数据库都 可以从服务器的管理中分离出来,脱离服 务器管理的同时保持数据文件和日志文件 的完整性和一致性。 • 分离后的数据库又可以根据需要重新 附加到数据库服务器中。 • 本节主要介绍如何分离与附加数据库。
12.2.1
•
分离数据库
分离数据库不是删除数据库,它只是 将数据库从服务器中分离出去。
12.5.2
•
将数据表生成脚本
除了将数据库生成脚本文件以外,用 户还可以根据需要将指定的数据表生成脚 本文件。
12.5.3
•
执行脚本
脚本文件生成以后,用户可以通过 “SQL Server Management Studio”工 具对指定的脚本文件进行修改,然后执行 该脚本文件。
12.6
•
数据库维护计划
12.4
•
备份和恢复数据库
对于数据库管理员来说,备份和恢复 数据库是保证数据库安全性的一项重要工 作。 • Microsoft SQL Server 2012提供了高 性能的备份和恢复功能,它可以实现多种 方式的数据库备份和恢复操作,避免了由 于各种故障造成的数据损坏或丢失。 • 本节主要介绍如何实现数据库的备份 与恢复操作。
12.1
•
脱机与联机数据库
如果需要暂时关闭某个数据库的服务, 用户可以通过选择脱机的方式来实现。 • 脱机后,在需要时可以对暂时关闭的 数据库通过联机操作的方式重新启动服务。 • 下面分别介绍如何实现数据库的脱机与 联机操作。
12.2
•
分离和附加数据库
分离和附加数据库的操作可以将数据 库从一台计算机移到另一台计算机,而不 必重新创建数据库。
• 备份数据库。 • 恢复数据库(还原数据库)。
sqlserver中注意事项

sqlserver中注意事项在使用SQL Server数据库时,有一些注意事项需要遵守,以确保数据的安全性和性能。
以下是一些重要的注意事项:1.定期备份和恢复:定期备份是保护数据安全的重要措施。
建议制定一个备份计划,并确保备份文件存储在安全的位置。
此外,还应定期测试和验证备份文件的可恢复性,以确保在数据丢失时能够快速恢复数据。
2. 定期维护数据库:SQL Server数据库需要定期进行维护来确保其性能和稳定性。
维护任务包括索引重建、统计信息更新、碎片整理和数据库压缩等。
可以使用SQL Server的内置维护计划工具来自动执行这些任务。
3.使用合适的数据类型:合理选择和使用正确的数据类型可以提高查询性能,并减少存储空间的使用。
避免使用较大的数据类型来存储小量数据,这会浪费存储空间。
还要避免使用不正确的数据类型,例如在存储日期时间类型时使用字符类型。
4. 注意查询性能:编写高效的查询语句是保证数据库性能的关键。
可以使用索引、优化查询、使用合适的join操作等技术来提高查询性能。
此外,还可以使用SQL Server提供的性能调优工具来分析和改进查询的执行计划。
5.避免并发问题:在多用户环境中,可能会出现并发问题,例如死锁和阻塞。
为了避免这些问题,可以使用合适的事务隔离级别、使用事务和锁定提示、合理设计数据库模式等。
此外,还应监视和跟踪数据库的并发活动,并及时处理可能的问题。
6.密码和访问控制:数据库的安全性是至关重要的。
确保为所有用户和服务账户设置强密码,并定期更改密码。
此外,还应限制对数据库的访问权限,并根据需要分配合适的权限和角色。
7. 性能调优和监控:定期监控数据库的性能,并执行必要的调优操作。
可以使用SQL Server提供的性能监视和调优工具来收集性能指标,并识别性能问题的根本原因。
此外,还可以使用SQL Server的性能监视器、事件跟踪和性能仪表板等功能来监控数据库的运行状况。
8. 定期更新和维护SQL Server:SQL Server的版本更新和维护补丁通常会修复安全漏洞和其他问题。
sql server数据库的安全策略和安全机制

sql server数据库的安全策略和安全机制SQL Server是一种常用的关系型数据库管理系统,它提供了一系列的安全策略和安全机制来保护数据库的安全性和保密性。
下面是一些关于SQL Server的安全策略和安全机制的讨论。
1.访问控制:SQL Server提供了针对数据库和数据库对象的访问控制机制。
通过创建用户和角色,并为它们分配不同的权限,可以限制对数据库的访问,保护数据库中的数据和对象不受未授权的访问。
可以使用SQL Server Management Studio(SQL Server管理工具)等工具来管理用户和角色,设置权限和访问规则。
2.身份验证和授权:SQL Server支持多种身份验证机制,包括Windows身份验证、SQL Server身份验证和Azure Active Directory 身份验证等。
管理员可以根据具体的需求选择合适的身份验证方式。
通过验证用户的身份信息,SQL Server可以确定用户是否有权限访问数据库和数据库对象。
3.数据加密:SQL Server支持数据加密来保护数据库中的敏感数据。
它提供了透明数据加密(TDE)、动态数据脱敏(DDM)、AlwaysEncrypted和加密传输等加密技术。
通过将数据加密,即使数据库被未授权的用户访问或泄露,也不能读取或使用加密的数据。
4.审计:SQL Server提供了完善的审计功能,用于跟踪数据库的使用情况和访问历史。
管理员可以配置审计规则,例如跟踪敏感操作、失败的登录尝试和访问权限变更等。
通过审计功能,可以检测和预防数据库的滥用和未经授权的访问。
5.数据库级别的防火墙:SQL Server提供了防火墙功能,用于限制数据库的访问只允许特定的IP地址或IP地址范围。
通过配置防火墙规则,可以防止未经授权的用户远程访问数据库。
6.强密码策略:SQL Server允许管理员设置强密码策略,要求用户选择较长和复杂的密码来保护他们的账户。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
12.3.1 添加数据库用户
• 1.在SQL Server Management Studio的“对象 资源管理器”窗格中,依次展开“数据库”、 “安全性“及“用户”。
16
2016年4月5日星期二
Page 16
2.使用sp_grantdbaccess添加数据库用户
• 使用系统存储过程sp_grantdbaccess可以为一个登录帐 户在当前数据库中映射一个或多个数据库用户,使它具有 默认的数据库角色public。执行这个存储过程的语法格式 如下。 EXECUTE sp_grantdbaccess '登录名', '用户名' • 【例12.5】 使用SQL语句,在数据库xsgl中分别为 Windows身份验证的登录帐户“JSJ\test”和SQL Server 身份验证的登录帐户“stu04”建立用户名“test”和 “stu04”。 • 由于登录帐户“stu04”的登录名和用户名相同,可以不用 指定,运行如下命令。 USE xsgl GO EXECUTE sp_grantdbaccess 'JSJ\test','test' EXECUTE sp_grantdbaccess 'stu04' GO
2016年4月5日星期二 Page 22
23
• 3.使用sp_addrole创建数据库角色 • 【例12.8】 使用系统存储过程sp_addrole, 在jxgl数据库中添加名为“role2”的数据库 角色。 • 运行如下命令。 USE jxgl GO EXECUTE sp_addrole 'role2' GO
第12章 SQL Server的安全管理
• • • • • 12.1 12.2 12.3 12.4 12.5 SQL Server的安全模型 服务器的安全性 数据库的安全性 数据库用户角色 权 限
2016年4月5日星期二
Page 1
2
通过学习本章,读者应掌握以下内容: • SQL Server的安全特性以及安全模型 • 使用SQL Server的安全管理工具构造灵活、 安全的管理机制
2016年4月5日星期二
Page 8
9
• 可以使用系统存储过程sp_grantlogin将一 个Windows系统帐户映射为一个使用 Windows身份验证的SQL Server登录帐户, 语法格式如下。 • EXECUTE sp_grantlogin '登录帐户'
2016年4月5日星期二
Page 9
12.2.2 禁止或删除登录帐户
• 禁止用户是暂时停止用户的使用权利,需要时可 以恢复;而删除用户则是彻底地将用户从服务器 中移除,是不能恢复的。禁止或删除用户均可以 采用图形界面方式或命令方式来完成。 1.使用SQL Server Management Studio禁止登 录帐户
10
2016年4月5日星期二
7
2.使用SQL Server Management Studio创 建使用SQL Server身份验证的登录帐户
2016年4月5日星期二
Page 7
8
3.使用SQL语句创建两种登录帐户 • 基本语法格式如下。 EXECUTE sp_addlogin '登录名', '登录密码', '默认 数据库', '默认语言‘ • 【例12.1】 创建一个名为“stu04”,使用SQL Server身份验证的登录帐户,其密码为“stu04”, 默认数据库为jxgl,使用系统默认语言。 • 运行如下命令。 • EXECUTE sp_addlogin 'stu04','stu04',‘jxgl'
2016年4月5日星期二
Page 3
12.1.1 SQL Server访问控制
与SQL Server安全模型的3层结构相对应, SQL Server的数据访问要经过3关的访问 控制。 • 第1关,用户必须登录SQL Server的服务 器实例。 • 第2关,在要访问的数据库中,用户的登录 名要有对应的用户帐号。 • 第3关,数据库用户帐号要具有访问相应数 据库对象的权限。
2016年4月5日星期二 Page 4
4
12.1.2 SQL Server身份验证模式
SQL Server有两种安全验证机制:Windows验证 机制和SQL Server验证机制。由这两种验证机制 产生了两种SQL Server身份验证模式: Windows身份验证模式和混合验证模式。顾名思 义,Windows验证模式就是只使用Windows验 证机制的身份验证模式;而混合模式则是用户既 可以使用Windows验证机制也可以使用SQL Server验证机制。 注意:使用“Windows身份验证模式”的时候, SQL Server仅接受Windows系统中的帐户的登 录请求,这时如果用户使用SQL Server身份验证 的登录帐户请求,则会收到登录失败的信息。
21
2016年4月5日星期二
Page 21
22
• 1.使用SQL Server Management Studio 创建数据库角色 • 在SQL Server Management Studio的 “对象资源管理器”中,依次展开到“数 据库”节点,选中要使用的数据库。 • 在目标数据库的安全性选项中,右击“角 色”,在弹出的快捷菜单中选择“新建” 命令,在级联菜单中选择“新建数据库角 色”命令,弹出“数据库角色-新建”对话 框
12
2016年4月5日星期二
Page 12
12.2.3 服务器角色
• 固定的服务器角色是在服务器安全模式中定义的 管理员组,它们的管理工作与数据库无关。SQL Server在安装后给定了几个固定的服务器角色, 具有固定的权限。可以在这些角色中添加登录帐 户以获得相应的管理权限。
13
2016年4月5日星期二
4.使用SQL语句删除登录帐户
• 系统存储过程sp_droplogin用于删除一个SQL Server身 份验证的登录帐户,其语法格式如下。 • EXECUTE sp_droplogin '登录名' • 系统存储过程sp_revokelogin用于删除Windows身份验 证的登录帐户,其语法格式如下。 • EXECUTE sp_revokelogin '登录名' • 【例12.3】 使用SQL语句删除Windows身份验证的登录 帐户“JSJ\test”和SQL Server身份验证的登录帐户 “stu04”。 • EXECUTE sp_droplogin 'stu04' • EXECUTE sp_revokelogin 'JSJ\test'
2016年4月5日星期二 Page 17
17
12.3.2 修改数据库用户
18
2016年4月5日星期二
Page 18
19
• 【例12.6】 使用SQL语句,为数据库用户test指定固定的 数据库角色db_ accessadmin。完成后再取消该角色。 • 运行如下命令。 USE jxgl GO EXECUTE sp_addrolemember 'db_accessadmin', 'test' GO EXECUTE sp_droprolemember 'db_accessadmin', 'test' GO
20
2016年4月5日星期二
Page 20
12.4 数据库用户角色
• 数据库角色分为固定的数据库角色和用户自定义 的数据库角色,固定的数据库角色预定义了数据 库的安全管理权限和对数据库对象的访问权限, 用户定义的数据库角色由管理员创建并且定义对 数据库对象的访问权限。 12.4.1 固定数据库角色 12.4.2 自定义数据库角色 用户自定义数据库角色有两种:标准角色和应用 程序角色。标准角色是指可以通过操作界面或应 用程序访问的角色,而应用程序访问角色则只能 通过应用程序访问使用。这里只讨论标准角色。
2016年4月5日星期二 Page 23
24
• 4.使用sp_droprole删除数据库角色 • 【例12.9】 使用系统存储过程sp_droprole,在jxgl数据 库中删除名为“role2”的数据库角色。 • 运行如下命令。 USE jxgl GO EXECUTE sp_droprole 'role2' GO • 注意:在删除角色时,如果角色中有成员,则会产生删除 失败的错误,为保证操作的成功运行,首先要删除角色中 的所有成员。
2016年4月5日星期二
5
Page 5
12.2 服务器的安全性
12.2.1 创建和修改登录帐户 • 1.使用SQL Server Management Studio 创建使用Windows身份验证的登录帐户
6
注意:在“登录名”文本框中,如果填写的名称在系统 帐户组或帐户中找不到,则显示出错信息。 2016年4月5日星期二 Page 6
Page 13
14
• 【例12.4】 使用SQL语句,为Windows身份验 证的登录帐户“JSJ\test”和SQL Server身份验 证的登录帐户“stu04”指定磁盘管理员的服务器 角色diskadmin。完成后再取消该角色。其中 “6E137BC21534459”为计算机名,针对不同机
器会有所不同。
Page 10
11
2.使用SQL Server Management Studio删除登录帐户 • 在SQL Server Management Studio的“对象资源管理器” 窗格中,展开服务器节点,在目标服务器下,展开“安全 性”节点,单击“登录”按钮。 • 右击要删除的登录帐户,在弹出的快捷菜单中选择“删除” 命令或直接按Delete键。 3.使用SQL语句禁止Windows身份验证的登录帐户 • 语法格式如下。 • EXECUTE sp_denylogin '登录帐户' • 注意:该存储过程只能用于禁止Windows身份验证的登 录帐户,而不能用于禁止SQL Server身份验证的登录帐 户。 • 【例12.2】 使用SQL语句,禁止Windows身份验证的登 录帐户JSJ\test。 • 运行如下命令。 • EXECUTE sp_denylogin 'JSJ\test' 2016年4月5日星期二 Page 11