sqlserver数据库系统加固规范

合集下载

数据库开发规范(SQL_SERVER篇)

数据库开发规范(SQL_SERVER篇)

数据库开发规范(SQL_SERVER篇)数据库开发规范(SQL SERVER篇)目录第一章命名规范 (4)1.命名标志法 (4)2.数据库命名 (4)3.数据库月份库、数据表日分库命名规则 (4)4.分段数据库分库命名规则 (4)5.分段分日期数据库分库命名规则 (4)6.表的命名 (5)7.字段命名 (5)8.存储过程命名 (5)9.触发器命名, (6)10.索引命名 (6)11.主键 (6)12.外键 (6)13.缺省值 (6)15.函数的命名 (6)16.其他数据库对象命名规则 (6)17.其他数据库可编程性对象命名 (6)18.数据库保留字 (6)19.禁止使用空格 (6)第二章常用数据类型 (7)第三章数据库设计规范 (9)1.三范式 (9)2.适当的冗余 (9)3.主键 (9)4.索引 (9)5.主键与聚集索引的关系 (10)第四章存储过程编写规范 (11)1.注释 (11)2.书写规范 (12)3.性能相关 (12)4.尽量使用索引 (13)5.事务和锁 (14)6.其他注意事项 (14)7.注意临时表和表变量的用法 (14)8.注意子查询的用法 (14)9.常用写法 (16)9.1. XML解析 (16)9.2.检查表是否有数据 (16)9.3.检查变量是否为空或为’’ (16)9.4.动态SQL (16)9.5.建表 (17)9.6.建索引 (17)9.7.建用户 (17)9.8.建全文索引 (17)9.9.建链接服务器 (18)9.10. SERVICE BROKER (18)9.11.分区 (19)第一章命名规范1. 命名标志法使用下面的三种大写标识符约定。

Pascal 大小写将标识符的首字母和后面连接的每个单词的首字母都大写。

可以对三字符或更多字符的标识符使用Pascal 大小写。

例如:BackColorCamel 大小写标识符的首字母小写,而每个后面连接的单词的首字母都大写。

sqlserver数据库安全配置规范

sqlserver数据库安全配置规范

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语句:usemasterselectname,passwordfromsysloginswherepasswordisnull2、使用安全的帐号策略由于sqlserver不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号,只有当没有其它方法登录到sqlserver实例(例如,当其它系统管理员不可用或忘记了密码)时才使用sa。

SQLserver数据库的密码策略与登录失败锁定策略

SQLserver数据库的密码策略与登录失败锁定策略

SQLserver数据库的密码策略与登录失败锁定策略SQL server数据库本⾝没有密码复杂度策略设置,它是使⽤Windows操作系统的校验函数来校验账户密码的,所以查看SQL server数据库密码复杂度需要结合操作系统本地安全策略的密码策略来看。

下⾯实验⼀下,实验环境是在Windows server 2008虚拟机上装了SQL server20008数据库。

⼀、设置SQL server的密码复杂度策略⾸先禁⽤服务器密码策略使⽤sa账户登录SQL server,打开安全性-登录名-右键-输⼊登录名test,选择SQL server⾝份验证,输⼊密码“123”(此时勾选了强制实时密码策略),点击确定可以成功创建了test账户,并且设置了弱⼝令“123”,然后右键test账户看⼀下属性。

下图中显⽰test账户勾选了强制实施密码策略,密码位置:显⽰15个圈,是看不出弱⼝令的。

⽤弱⼝令登录test账户也是没有问题的然后开启服务器密码策略,使⽤管理员sa新建⼀个弱⼝令账户依然使⽤sa账户登录SQL server,打开安全性-登录名-右键-输⼊登录名test1,选择SQL server⾝份验证,输⼊密码“123”(此时勾选了强制实施密码策略),点击确定此时数据库报错提⽰“密码有效性验证失败,该密码不够复杂,不符合Windows策略要求”,证明了开启服务器密码策略并勾选账户强制实施密码策略,是有效果的。

但我看了⼀下Windows操作系统的密码策略也是挺下饭-..-最少六个字符长!!就是说即使开了密码策略,还可以将密码设置为Qwe!23的六位数如果想要设置密码最⼩长度的话,在服务器密码策略上修改就可以了最后试⼀下开启Windows操作系统密码策略,不勾选数据库账户的强制实施密码策略,看看能不能,设置弱⼝令果然结果是可以的。

总结⼀下就是SQL server密码策略要同时满⾜开启Windows密码策略并且勾选SQL server账户的强制实施密码策略才算是符合,但即使这样的话⼀样可以设置6位长度的⼝令,所以还要设置服务器的密码最⼩长度值。

MicrosoftSQLServer数据库系统配置安全基线标准与操作指引-网络

MicrosoftSQLServer数据库系统配置安全基线标准与操作指引-网络

Microsoft SQL Server数据库系统配置安全基线标准与操作指南南京农业大学图书与信息中心2018年6月目录第1章概述 (1)1.1 安全基线概念 (1)1.2 文档编制目的 (1)1.3 文档适用范围 (1)1.4 文档修订 (1)第2章帐号与口令 (1)2.1 口令安全 (1)2.1.1 删除不必要的帐号 (1)2.1.2 用户口令安全 (1)2.1.3 帐号分配管理 (2)2.1.4 分配数据库用户所需的最小权限 (2)2.1.5 网络访问限制 (2)第3章日志 (3)3.1 日志审计 (3)3.1.1 登录审计 (3)3.1.2 安全事件审计 (3)第4章其他安全配置 (4)4.1 安全策略 (4)4.1.1 通讯协议安全策略 (4)4.2 更新补丁 (4)4.2.1 补丁要求 (4)4.3 存储保护 (5)4.3.1 停用不必要存储过程 (5)第1章概述1.1 安全基线概念安全基线是指满足最小安全保证的基本要求。

1.2 文档编制目的本文档针对安装运行Microsoft SQL Server数据库系统的服务器主机所应当遵循的基本安全设置要求提供了参考建议,供校园网用户在安装使用Microsoft SQL Server数据库系统提供数据存储服务过程中进行安全合规性自查、检查、加固提供标准依据与操作指导。

1.3 文档适用范围本文档适用于Microsoft SQL Server数据库系统的各类版本。

1.4 文档修订本文档的解释权和修改权属于南京农业大学图书与信息中心,欢迎校园网用户提供意见或建议,请发送至security@。

第2章帐号与口令2.1 口令安全2.1.1 删除不必要的帐号2.1.2 用户口令安全查看password 字段应不为null2.1.3 帐号分配管理2.1.4 分配数据库用户所需的最小权限2.1.5 网络访问限制在防火墙中做限制,只允许与指定的IP 地址建立1433 的通第3章日志3.1 日志审计3.1.1 登录审计3.1.2 安全事件审计打开企业管理器,查看数据库“管理”中的“ SQL Server第4章其他安全配置4.1 安全策略4.1.1 通讯协议安全策略4.2 更新补丁4.2.1 补丁要求级效果,再在实际运行环境更新数据库。

sqlserver 锁详解

sqlserver 锁详解

sqlserver 锁详解
SQL Server 锁是用于在多用户环境下保证数据库完整性和一致性的重要机制。

锁的主要目的是防止在并发操作过程中出现数据不一致的问题,如丢失更新、脏读、不可重复读和幻觉读等。

SQL Server 锁机制主要强调由系统自动管理锁,以平衡锁定条件和系统性能。

锁可以分为以下三种类型:
1. 共享锁(Shared Lock):共享锁用于不更改或不更新数据的操作,如SELECT 语句。

在此锁模式下,其他事务可以继续读取同一数据,但不能修改。

共享锁适用于只读操作,确保数据在一段时间内的一致性。

2. 更新锁(Update Lock):更新锁用于可更新的资源中。

它防止在多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。

更新锁用于保护更新操作,确保数据在更新过程中的一致性。

3. 独占锁(Exclusive Lock):独占锁用于数据修改操作,例如INSERT、UPDATE 或DELETE。

独占锁确保在锁定的时间内,其他事务无法对数据进行修改。

这种锁在整个事务期间保持锁定,直到事务结束。

SQL Server 锁机制在运行期间会自动进行优化处理,实行动态加锁。

对于一般的用户而言,通过系统的自动锁定管理机制基本可以满足使用要求。

但如果对数据安全、数据库完整性和一致性有特殊要求,就需要了解SQL Server 的锁机制,掌握数据库锁定方法。

在实际应用中,了解SQL Server 锁机制有助于更好地设计和优化应用程序,以避免因为锁冲突导致的性能问题。

同时,合理使用锁机制可以有效提高数据库并发性能,确保数据的一致性和完整性。

sqlserver 密码策略

sqlserver 密码策略

sqlserver 密码策略SQL Server提供了强大的密码策略来确保数据库中的用户账户具有高度安全性。

密码策略可以控制用户密码的复杂度、密码长短、密码过期策略和账户锁定条件等。

密码策略包括以下内容:1.复杂度要求密码策略可以要求用户制定符合特定标准的复杂密码。

此标准可以包括以下内容:a.密码长度:密码长度要求至少有6个字符,但也可以提高到更长的长度。

b.字符种类要求:密码必须包含特殊字符、数字、大小写字母。

SQL Server还可以定制要求其他字符类型,如Unicode字符等。

c.密码历史记录:密码策略可以要求用户在密码历史记录中不得使用最近使用过的密码。

这可以有效防止用户多次使用相同的密码。

2.密码过期策略密码过期策略可以防止用户长时间使用相同的密码,从而提高密码安全性。

在SQL Server密码策略中,可以要求用户每隔一段时间必须更改密码。

可以定义以下参数:a.密码过期时间:管理员可以定义密码的过期时间。

可以强制用户在过期时间到达时更改密码。

b.最大无通行证时间:密码策略还可以设置最大无通行证时间,用户必须登录后才能访问数据库。

管理员可以根据安全策略定义这个时间。

3.账户锁定条件账户锁定条件可以防止暴力破解密码攻击。

SQL Server密码策略可以设置以下参数:a.密码尝试次数:当密码输入错误尝试已达上限,密码策略会禁止继续使用该账户。

b.锁定时间:可以设置账户被锁定的时间。

c.重置锁定计数:在一定时间内失败登录次数后,还可以设置锁定期限达到之后重置计数,因此用户可以再次尝试登录。

总之,SQL Server密码策略可以保护用户账户,确保数据库环境的安全性。

它允许管理员控制密码复杂性和有效期,帮助避免账户被不良用户攻击。

MySQL的密码策略功能为您管理密码,以确保安全并保护您的应用程序。

SQLServer数据库等级保护实施指导书(二级)

SQLServer数据库等级保护实施指导书(二级)

2.1版第0次修订SQL Server数据库等级保护实施指导书(二级)序号控制点测评项操作步骤预期结果(5分)数据库依托的操作系统数据库具体版本检查应用是否使用sa账户11身份鉴别a)应对登录数据库系统的用户进行身份标识和鉴别;1)展开服务器组,编辑SQL Server注册属性,查看身份认证方式;2)直接登录SQL Server企业管理器,试图连接数据库,查看系统是否出现用户和密码的输入框。

检查企业管理器和查询分析器验证是否均有口令SQL Server2000默认口令为空记录SQL Server认证机制(Windows集成、混合认证)1、对登陆数据库系统的用户进行身份鉴别2、不得使用默认用户和默认口令1)选中“使用SQL Server身份认证”,并且选中“总是提示输入用户名和密码”。

2)提示用户输入密码。

b)数据库系统管理用户身份鉴别信息应具有不易被冒用的特点,口令应有复杂1)询问并验证是否在安装时立刻修改sa口令,用该用户和常见密码试图登录数据库系统,查看是否成功。

2)在SQL查询分析器中执行命令:1、口令由数字、大小写字母、符号混排、无规律方式2、用户口令的长度至少为8位2.1版第0次修订度要求并定期更换;use masterselect*from syslogins where password is null查看是否有空口令用户。

3)询问并验证口令的管理要求,如口令的长度、口令复杂性和口令更新周期等方面的管理要求。

现有用户口令的长度、口令复杂性和口令更新周期等设置3、口令每季度更换一次,更新的口令至少5次内不能重复如:1)sa用户的口令不是常见口令。

2)在master数据库中,无空口令用户。

3)口令管理制度规定口令设置的复杂度要求,至少包括:字符数字混合、长度不低于8位。

4)SQL Server未提供技术手段来强制要求口令的复杂性c)应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施;1)使用sp_configure查看有无鉴别失败和超时等方面的设置2)访谈系统管理员,了解是否采取第三方工具实现该功能。

sqlserver锁机制

sqlserver锁机制

sqlserver锁机制
SQLServer锁机制是指SQLServer在处理并发操作时使用的一种机制,主要作用是确保数据的一致性和完整性。

SQL Server锁分为共享锁和排他锁,共享锁允许多个用户同时访问同一资源,而排他锁则只允许一个用户访问。

SQL Server锁机制可以通过以下几种方式实现:
1. 行级锁:行级锁允许在一个事务中对某一行数据进行加锁和解锁,其他事务不能访问该行数据。

2. 表级锁:表级锁允许在一个事务中对整个表进行加锁和解锁,其他事务不能访问该表数据。

3. 页面锁:页面锁允许在一个事务中对某一页数据进行加锁和解锁,其他事务不能访问该页数据。

4. 元数据锁:元数据锁用于保护SQL Server的系统表和系统存储过程,防止其他用户对其进行修改。

SQL Server锁机制的实现需要考虑并发性和性能的平衡。

如果加锁过于频繁,会导致性能下降;如果加锁不足,会导致数据的不一致性和完整性问题。

因此,SQL Server锁机制的实现需要根据具体的应用场景和业务需求进行调整和优化。

- 1 -。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、 参考配置操作
sp_addlogin 'user_name_1','password1' sp_addlogin 'user_name_2','password2'
或在企业管理器中直接添加远程登陆用户
实施步骤
建立角色,并给角色授权,把角色赋给不同的用户或修改用 户属性中的角色和权限 2、 补充操作说明 1、user_name_1 和 user_name_1 是两个不同的账号名 称,可根据不同用户,取不同的名称;
1.1.4 SHG-Mssql-01-01-04 编号 名称 实施目的 问题影响 系统当前状态 SHG-Mssql-01-01-04 权限最小化 在数据库权限配置能力内,根据用户的业务需要, 配置其所需的最小权限。 账号权限越大,对系统的威胁性越高 记录用户拥有权限
1、 参考配置操作 a) 更改数据库属性,取消业务数据库帐号不需要的服务器 角色; b) 更改数据库属性,取消业务数据库帐号不需要的“数据
2
日志配置 ........................................................................................................................... 7 2.1.1 SHG-Mssql-02-01-01 ........................................................................................... 7
1 账号管理、认证授权
1.1.1 SHG-Mssql-01-01-01 编号 名称 实施目的 问题影响 SHG-Mssql-01-01-01 为不同的管理员分配不同的账号 应按照用户分配账号,避免不同用户间共享账号, 提高安全性。 账号混淆,权限不明确,存在用户越权使用的可能。 use master 系统当前状态 Select name,password from syslogins order by name 记录用户列表
实施风险 重要等级 备注
高 ★
2 日志配置
2.1.1 SHG-Mssql-02-01-01 编号 名称 实施目的 问题影响 系统当前状态 SHG-Mssql-02-01-01 启用日志记录功能 数据库应配置日志功能,对用户登录进行记录,记 录内容包括用户登录使用的账号、登录是否成功、 登录时间以及远程登录时用户使用的 IP 地址。 无法对用户的登陆进行日志记录
实施风险 重要等级 备注
高 ★★
3.1.2 SHG-Mssql-03-01-02 编号 SHG-Mssql-03-01-02
名称 实施目的 问题影响
ห้องสมุดไป่ตู้
加固 TCP/IP 协议栈 加固 TCP/IP 协议栈,加强系统防御网络攻击能力.
网络防御能力弱. 查看 HKLM\System\CurrentControlSet\Services\ Tcpip\Parameters\ DisableIPSourceRouting HKLM\SYSTEM\CurrentControlSet\Services\ Tcpip\Parameters\ EnableICMPRedirect HKLM\System\CurrentControlSet\Services\ Tcpip\Parameters\SynAttackProtect 注册表键值 参考配置操作 对于 TCP/IP 协议栈的加固主要是某些注册表键值的 修改。主要是以下几个: HKLM\System\CurrentControlSet\Services\Tcpip\ Parameters\DisableIPSourceRouting 说明:该键值应设为 2,以防御源路由欺骗攻击。 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters\EnableICMPRedirect 说明:该键值应设为 0,以 ICMP 重定向。 HKLM\System\CurrentControlSet\Services\Tcpip\ Parameters\SynAttackProtect 说明:该键值应设为 2,防御 SYN FLOOD 攻击。
回退方案
删除添加的用户
判断依据 实施风险 重要等级 备注
询问管理员是否安装需求分配用户账号 高 ★★★
1.1.2 SHG-Mssql-01-01-02 编号 名称 实施目的 问题影响 SHG-Mssql-01-01-02 删除或锁定无效账号 删除或锁定无效的账号,减少系统安全隐患。 允许非法利用系统默认账号 use master 系统当前状态 Select name,password from syslogins order by name 记录用户列表 1、参考配置操作 Mssql 企业管理器-> SQL Server 组 实施步骤 ->(Local)(Windows NT)->安全性->登录 在用户上点右键选择删除 回退方案 判断依据 实施风险 重要等级 备注 增加删除的帐户 询问管理员,哪些账号是无效账号 高 ★★★
新建 SQL server 服务账号后,建议将其从 User 组中删除, 且不要把该账号提升为 Administrators 组的成员。授予以
系统当前状态
实施步骤
下 windows SQLRunAs 账户最少的权限启动 SQL Server 数据 库。
回退方案 判断依据 实施风险 重要等级 备注
替换会原来启动账号 判定条件 查看启动账号权限. 高 ★★★
系统当前状态
null order by name # 查看口令为空的用户
Use master exec sp_password ‘旧口令’‘新口令’,用户名 ,
实施步骤
回退方案 判断依据
恢复用户密码到原来状态
Select name,Password from syslogins where password is null order by name 查看是否有账号为密码
3
通信协议 ........................................................................................................................... 8 3.1.1 3.1.2 3.1.3 SHG-Mssql-03-01-01 ........................................................................................... 8 SHG-Mssql-03-01-02 ........................................................................................... 8 SHG-Mssql-03-01-04 ......................................................................................... 10
4
设备其他安全要求 .........................................................................................................11 4.1.1 4.1.2 SHG-Mssql-04-01-01 ..........................................................................................11 SHG-Mssql-04-01-02 ......................................................................................... 14
a) 企业管理器-〉数据库-〉对应数据库-〉角色-中创建新角 色; b) 调整角色属性中的权限,赋予角色中拥有对象对应的 SELECT、INSERT、UPDATE、DELETE、EXEC、DRI 权限
实施步骤
回退方案 判断依据 实施风险 重要等级 备注
删除相应的角色 对应用户不要赋予不必要的权限 高 ★
打开数据库属性,查看安全属性 打开数据库属性,选择安全性,将安全性中的审计级别调整
实施步骤
为“全部” ,身份验证调整为“SQL Server 和 Windows”
回退方案 判断依据
设置安全属性到原先状态 判定条件 登录测试,检查相关信息是否被记录
实施风险 重要等级 备注
低 ★★★
3 通信协议
3.1.1 SHG-Mssql-03-01-01 编号 名称 实施目的 问题影响 系统当前状态 SHG-Mssql-03-01-01 网络协议 除去不必要的服务 增加数据库安全隐患
1.1.3 SHG-Mssql-01-01-03 编号 名称 实施目的 问题影响 SHG-Mssql-01-01-03 限制启动账号权限 限制账号过高的用户启动 sql server 启动 mssql 的账号权限过高,会导致其子进程具有 相同权限. Mssql 企业管理器-> SQL Server 组 ->(Local)(Windows NT)-属性(右键)-安全性 1、参考配置操作
实施步骤
库访问许可”和“数据库角色中允许”中不需要的角色。 2、 补充操作说明
操作 a)用于修改数据库帐号的最小系统角色
操作 b)用于修改用户多余数据库访问许可权限和数据库内 角色
回退方案 判断依据 实施风险 重要等级 备注
还原添加或删除的权限 业务测试正常 高 ★
相关文档
最新文档