在现实的世界中,我们不可能为每一个可能的威胁做好准备,我们只能增强自身的防护,让恶意用户更难威胁到我们的安全。SQL Server也一样,我们必须遵循一些基本的原则来保证和提高服务器的安全级别,让恶意用户更难访问到数据。

下面是个人根据实践经验总结的一些原则:

1.物理安全

我们要尽量把服务器放置在物理安全性高的地方,至少具有防盗、防破坏、不可随意接近、不可随意实地访问等特点。(本人就曾遇到过客户把数据库服务器放置在普通员工办公桌上被盗的事情)

2.网络安全

最小化数据库服务器的可见度:不要在防火墙中将数据库服务端口对公网开放,只对必须的服务器开放数据库访问端口。

安装好SQL Server后,我们应该禁用或删除所有不使用的网络协议:在SQL Server配置管理器中,可以启用或禁用SQL Server使用的协议。

3.帐户安全

尽可能使用Windows身份验证:Windows和Kerberos身份验证本身都比SQL Server身份验证更加安全,但这需要整体的网络、系统以及应用程序设计架构的支持。

不要以sa帐户登录:尽量不使用sa帐户,并且要求用户必须使用他们自己的登录名,从而可以跟踪对应用户具体执行的操作。

对SQL Server服务使用最小特权帐户:应用最小特权原则,并使用正好满足服务需要的权限的帐户。(LocalSystem>Network Service>Local Service)

LocalSystem是预设的拥有本机所有权限的本地账户,这个账户跟通常的用户账户没有任何关联,也没有用户名和密码之类的凭证。当LocalSystem访问网络资源时,它是作为计算机的域账户使用的。

Network Service账户是预设的拥有本机部分权限的本地账户,它能够以计算机的名义访问网络资源。但是他没有Local   System那么多的权限,以这个账户运行的服务会根据实际环境把访问凭据提交给远程的计算机。Network   Service账户通常可以访问Network   Service、Everyone组,还有认证用户有权限访问的资源。

Local Service账户是预设的拥有最小权限的本地账户,并在网络凭证中具有匿名的身份。Local Service账户通常可以访问Local Service、Everyone组还有认证用户有权限访问的资源。

对SQL Server登录名应用最小权限原则:应该只给予对应登录名所需的最小权限,刚好满足应用需要即可。不同的应用,应该使用不同的登录名进行访问。

SQL Server登录名必须使用强密码:我们应当利用密码策略,要求用户创建复杂密码,并且尽量做到定期更改。

定期审核服务器帐户和SQL Server登录名:作为管理员,必须清楚知道哪些帐户和登录名是自己创建的,分别做什么用途,由谁负责这些帐户和登录名;必须按照步骤禁用和删除多余的帐户和登录名

4.数据安全

使用TDE保护休眠中的数据:加密数据库和事务日志文件可降低他人复制数据文件并卷走敏感的商业数据的可能性。

使用在线加密保护传输中的数据:只保密服务器上的数据是不够的,应使用诸如SSL和IPSec等技术在数据从客户端向服务器、从服务器向客户端或从服务器向服务器移动时保护他们。

不要对经常被搜索的列进行加密:加密经常被访问或搜索的列导致的问题可能比它解决的问题还要多。

以上仅是一些基本的原则,在实际的工作中,我们面临的应用和系统是非常复杂的,也是各不相同的,还是需要根据实际情况进行针对性的处理。

管理SQL Server数据库服务器的安全防范原则的更多相关文章

  1. Python监控SQL Server数据库服务器磁盘使用情况

    本篇博客总结一下Python采集SQL Server数据库服务器的磁盘使用信息,其实这里也是根据需求不断推进演化的一个历程,我们监控服务器的磁盘走了大概这样一个历程: 1:使用SQL Server作业 ...

  2. Microsoft SQL Server 数据库服务器管理维护角色

    固定服务器角色: 按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述: Bulkadmin:这个服务器角色的成员可以运行BULK INSERT语句.这条语句允 ...

  3. SQL SERVER数据库服务器CPU不能全部利用原因分析

    背景 客户凌晨把HIS数据库迁移到配置更高的新服务器,上午业务高峰时应用非常缓慢,严重影响到业务运行.   1.现象 通过SQL专家云实时可视化界面看到大量的绿点,绿点表示会话在等待某项资源,绿点越大 ...

  4. 创建和管理SQL Server数据库

    1.创建数据库 右击“数据库”,在弹出的快捷菜单中选择“新建数据库”选项 2.分离和附加数据库 分离:右击数据库"MySchool",在弹出的快捷菜单中选择“任务”—“分离”选项 ...

  5. MS SQL Server数据库在线管理工具

    MS SQL Server数据库以其优异的性能,被广泛使用,特别是政务,医疗行业.但是远程维护挺不方便的,目前有一款基于WEB的工具TreeSoft数据库管理系统. 免安装,直接解压就可以用了.直接通 ...

  6. SQL Server 数据库分离与附加

    一.概述 SQL Server提供了“分离/附加”数据库.“备份/还原”数据库.复制数据库等多种数据库的备份和恢复方法.这里介绍一种学习中常用的“分离/附加”方法,类似于大家熟悉的“文件拷贝”方法,即 ...

  7. 数据库开发基础 SQL Server 数据库的备份、还原与分离、附加

    认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是 一.在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点 二. ...

  8. java连接sql server数据库(使用用户sa)

    一.安装数据库相关软件 sql server management studio是管理sql server数据库的软件,想要使用需到微软官网下载安装sql server,然后再安装sql server ...

  9. 用分离、附加的方式实现sql server数据库的备份和还原

    一.数据库分离.附加的说明 SQL Server提供了"分离/附加"数据库."备份/还原"数据库.复制数据库等多种数据库的备份和恢复方法.这里介绍一种学习中常用 ...

随机推荐

  1. 基于spark的plsa实现

    PLSA.py # coding:utf8 from pyspark import SparkContext from pyspark import RDD import numpy as np fr ...

  2. Unity 音乐播放全局类

    今天晚了LOL, 发现里面的声音系统做得很不错,于是最近就写了一份反正以后也用的到,2D音乐全局播放. 项目跟PoolManager对象池插件结合了. 解决的问题: 1. 已经播放的声音,可以马上暂停 ...

  3. FP-Growth算法之频繁项集的挖掘(python)

    前言: 关于 FP-Growth 算法介绍请见:FP-Growth算法的介绍. 本文主要介绍从 FP-tree 中提取频繁项集的算法.关于伪代码请查看上面的文章. FP-tree 的构造请见:FP-G ...

  4. Yaffs文件系统简介

    1 简介 1.1 应用场合 Yaffs(Yet Another Flash File System)文件系统是专门针对NAND闪存设计的嵌入式文件系统,目前有YAFFS和YAFFS2两个版本,两个版本 ...

  5. CSS布局方案之圣杯布局

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  6. asp.net中Repeart选中整行操作

    <asp:Repeater runat="server" ID="rpt_Student"> <HeaderTemplate> < ...

  7. java-随学随记之基础篇

    一.Java是一门高级语言,具有跨平台性(一次编译到处运行) 1.javac.exe命令,编译器   javac 源文件名.java 2.java.exe命令,启动虚拟机 java 类名 二.环境变量 ...

  8. Visual Studio 使用技巧

    整理备用: 1. 键入prop后,连续按两下tab,  可以自动生成属性,然后输入类型和名称. 类似的还有: propg, 生成private set的属性 propfull,生成私有字段,和相应属性 ...

  9. C#之回到了最初的起点----解决方案、项目、程序集、命名空间

    C#之回到了最初的起点----解决方案.项目.程序集.命名空间 ——Percy 初学者很容易把这些概念搞混淆.先说说项目(Project),通俗的说,一个项目可以就是你开发的一个软件.在.Net下,一 ...

  10. ComboGrid 行内点击编辑内容

    最近easyui需要在行内编辑选中项,但是编辑的内容出了当前选中列值,还有其他的,比较麻烦, 先看下这段代码 columns: [[ { field: 'GuestID', title: '编号', ...