数据库安全管理?数据库管理系统包括哪些部分
很多朋友对于数据库安全管理和数据库管理系统包括哪些部分不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
数据库的安全策略有哪些
计算机安全是当前信息社会非常关注的问题,而数据库系统更是担负着存储和管理数据信息的任务,因而如何保证和加强其安全性,更是迫切需要解决的热门课题。下面将讨论数据库的安全策略,并简单介绍各种策略的实现方案。
一、数据库的安全策略
数据库安全策略是涉及信息安全的高级指导方针,这些策略根据用户需要、安装环境、建立规则和法律等方面的限制来制定。
数据库系统的基本安全性策略主要是一些基本性安全的问题,如访问控制、伪装数据的排除、用户的认证、可靠性,这些问题是整个安全性问题的基本问题。数据库的安全策略主要包含以下几个方面:
1.保证数据库存在安全
数据库是建立在主机硬件、操作系统和网络上的系统,因此要保证数据库安全,首先应该确保数据库存在安全。预防因主机掉电或其他原因引起死机、操作系统内存泄漏和网络遭受攻击等不安全因素是保证数据库安全不受威胁的基础。
2.保证数据库使用安全
数据库使用安全是指数据库的完整性、保密性和可用性。其中,完整性既适用于数据库的个别元素也适用于整个数据库,所以在数据库管理系统的设计中完整性是主要的关心对象。保密性由于攻击的存在而变成数据库的一大问题,用户可以间接访问敏感数据库。最后,因为共享访问的需要是开发数据库的基础,所以可用性是重要的,但是可用性与保密性是相互冲突的。
二、数据库的安全实现
1.数据库存在安全的实现
正确理解系统的硬件配置、操作系统和网络配置及功能对于数据库存在安全十分重要。比如对于硬件配置情况,就必须熟悉系统的可用硬盘数量,每个硬盘的可用空间数量,可用的CPU数量,每个CPU的Cache有多大,可用的内存数量,以及是否有冗余电源等问题;对于操作系统,则应该周期性的检查内存是否有泄漏,根文件系统是否需要清理,重要的日志是否已经察看;对于网络就应该随时确保网络没有过载,网络畅通、网络安全是否得到保证等等。因为这一部分不是本文的重点,所以不再一一细述,总之,这三方面的安全运行是和维护数据库存在安全不可分割的。
2.数据库完整性的实现
数据库的完整性包括库的完整性和元素的完整性。
数据库的完整性是DBMS(数据库管理系统)、操作系统和系统管理者的责任。数据库管理系统必须确保只有经批准的个人才能进行更新,还意味着数据须有访问控制,另外数据库系统还必须防范非人为的外力灾难。从操作系统和计算系统管理者的观点来看,数据库和DBMS分别是文件和程序。因此整个数据库的一种形式的保护是对系统中所有文件做周期性备份。数据库的周期性备份可以控制由灾祸造成的损失。数据库元素的完整性是指它们的正确性和准确性。由于用户在搜集数据、计算结果、输入数值时可能会出现错误,所以DBMS必须帮助用户在输入时能发现错误,并在插入错误数据后能纠正它们。DBMS用三种方式维护数据库中每个元素的完整性:通过字段检查在一个位置上的适当的值,防止输入数据时可能出现的简单错误;通过访问控制来维护数据库的完整性和一致性;通过维护数据库的更改日志,记录数据库每次改变的情况,包括原来的值和修改后的值,数据库管理员可以根据日志撤消任何错误的修改。
3.数据库保密性的实现
数据库的保密性可以通过用户身份鉴定和访问控制来实现。
DBMS要求严格的用户身份鉴定。一个DBMS可能要求用户传递指定的通行字和时间日期检查,这一认证是在操作系统完成的认证之外另加的。DBMS在操作系统之外作为一个应用程序被运行,这意味着它没有到操作系统的可信赖路径,因此必须怀疑它所收的任何数据,包括用户认证。因此DBMS最好有自己的认证机制。
访问控制是指根据用户访问特权逻辑地控制访问范围和操作权限。如一般用户只能访问一般数据、市场部可以得到销售数据、以及人事部可以得到工资数据等。DBMS必须实施访问控制政策,批准对所有指定的数据的访问或者禁止访问。DBMS批准一个用户或者程序可能有权读、改变、删除或附加一个值,可能增加或删除整个字段或记录,或者重新组织完全的数据库。
4.数据库可用性的实现
数据库的可用性包括数据库的可获性、访问的可接受性和用户认证的时间性三个因素。下面解释这三个因素。
(1)数据的可获性
首先,要访问的元素可能是不可访问的。例如,一个用户在更新几个字段,其他用户对这些字段的访问便必须被暂时阻止。这样可以保证用户不会收到不准确的信息。当进行更新时,用户可能不得不阻止对几个字段或几个记录的访问通道,以便保证数据与其他部分的一致性。不过有一点要注意,如果正在更新的用户在更新进行期间退出,其他用户有可能会被永远阻止访问该记录。这种后遗症也是一个安全性问题,会出现拒绝服务。
(2)访问的可接受性
记录的一个或多个值可能是敏感的而不能被用户访问。DBMS不应该将敏感数据泄露给未经批准的个人。但是判断什么是敏感的并不是那么简单,因为可能是间接请求该字段。一个用户也许请求某些包含敏感数据的记录,这可能只是由非敏感的特殊字段推出需要的值。即使没有明确地给出敏感的值,数据库管理程序也可能拒绝访问这样的背景信息,因为它会揭示用户无权知道的信息。
(3)用户认证的时间性
为了加强安全性,数据库管理员可能允许用户只在某些时间访问数据库,比如在工作时间。
数据库安全的安全策略
数据库的安全配置在进行安全配置之前,首先必须对操作系统进行安全配置,保证操作系统处于安全状态。然后对要使用的操作数据库软件(程序)进行必要的安全审核,比如对ASP、PHP等脚本,这是很多基于数据库的Web应用常出现的安全隐患,对于脚本主要是一个过滤问题,需要过滤一些类似“,;@/”等字符,防止破坏者构造恶意的SQL语句。接着,安装SQL Server2000后请打上最新SQL补丁SP4。
SQL Server的安全配置
1.使用安全的密码策略
我们把密码策略摆在所有安全配置的第一步,请注意,很多数据库账号的密码过于简单,这跟系统密码过于简单是一个道理。对于sa更应该注意,同时不要让sa账号的密码写于应用程序或者脚本中。健壮的密码是安全的第一步,建议密码含有多种数字字母组合并9位以上。SQL Server2000安装的时候,如果是使用混合模式,那么就需要输入sa的密码,除非您确认必须使用空密码,这比以前的版本有所改进。同时养成定期修改密码的好习惯,数据库管理员应该定期查看是否有不符合密码要求的账号。
2.使用安全的账号策略
由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个账号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa账号,只有当没有其他方法登录到 SQL Server实例(例如,当其他系统管理员不可用或忘记了密码)时才使用 sa。建议数据库管理员新建立个拥有与sa一样权限的超级用户来管理数据库。安全的账号策略还包括不要让管理员权限的账号泛滥。
SQL Server的认证模式有Windows身份认证和混合身份认证两种。如果数据库管理员不希望操作系统管理员来通过操作系统登录来接触数据库的话,可以在账号管理中把系统账号“BUILTIN\Administrators”删除。不过这样做的结果是一旦sa账号忘记密码的话,就没有办法来恢复了。很多主机使用数据库应用只是用来做查询、修改等简单功能的,请根据实际需要分配账号,并赋予仅仅能够满足应用要求和需要的权限。比如,只要查询功能的,那么就使用一个简单的public账号能够select就可以了。
3.加强数据库日志的记录
审核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有账号的登录事件。请定期查看SQL Server日志检查是否有可疑的登录事件发生,或者使用DOS命令。
4.管理扩展存储过程
对存储过程进行大手术,并且对账号调用扩展存储过程的权限要慎重。其实在多数应用中根本用不到多少系统的存储过程,而SQL Server的这么多系统存储过程只是用来适应广大用户需求的,所以请删除不必要的存储过程,因为有些系统的存储过程能很容易地被人利用起来提升权限或进行破坏。如果您不需要扩展存储过程Xp_cmdshell请把它去掉。使用这个SQL语句:
use master
sp_dropextendedproc'Xp_cmdshell'
Xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。如果您需要这个存储过程,请用这个语句也可以恢复过来。
sp_addextendedproc'xp_cmdshell','xpSQL70.dll'
如果您不需要请丢弃OLE自动存储过程(会造成管理器中的某些特征不能使用)。
这些过程如下: Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,命令如下:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue
Xp_regenumvalues Xp_regread Xp_regremovemultistring
Xp_regwrite
还有一些其他的扩展存储过程,也最好检查检查。在处理存储过程的时候,请确认一下,避免造成对数据库或应用程序的伤害。
5.使用协议加密
SQL Server 2000使用的Tabular Data Stream协议来进行网络数据交换,如果不加密的话,所有的网络传输都是明文的,包括密码、数据库内容等,这是一个很大的安全威胁。能被人在网络中截获到他们需要的东西,包括数据库账号和密码。所以,在条件容许情况下,最好使用SSL来加密协议,当然,您需要一个证书来支持。
6.不要让人随便探测到您的TCP/IP端口
默认情况下,SQL Server使用1433端口监听,很多人都说SQL Server配置的时候要把这个端口改变,这样别人就不会轻易地知道使用的什么端口了。可惜,通过微软未公开的1434端口的UDP探测可以很容易知道SQL Server使用的什么TCP/IP端口。不过微软还是考虑到了这个问题,毕竟公开而且开放的端口会引起不必要的麻烦。在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server实例。如果隐藏了SQL Server实例,则将禁止对试图枚举网络上现有的 SQL Server实例的客户端所发出的广播作出响应。这样,别人就不能用1434来探测您的TCP/IP端口了(除非用Port Scan)。
7.修改TCP/IP使用的端口
请在上一步配置的基础上,更改原默认的1433端口。在实例属性中选择网络配置中的TCP/IP协议的属性,将TCP/IP使用的默认端口变为其他端口。
8.拒绝来自1434端口的探测
由于1434端口探测没有限制,能够被别人探测到一些数据库信息,而且还可能遭到DoS攻击让数据库服务器的CPU负荷增大,所以对Windows 2000操作系统来说,在IPSec过滤拒绝掉1434端口的UDP通信,可以尽可能地隐藏您的SQL Server。
9.对网络连接进行IP限制
SQL Server 2000数据库系统本身没有提供网络连接的安全解决办法,但是Windows 2000提供了这样的安全机制。使用操作系统自己的IPSec可以实现IP数据包的安全性。请对IP连接进行限制,只保证自己的IP能够访问,也拒绝其他IP进行的端口连接,对来自网络上的安全威胁进行有效的控制。
上面主要介绍的一些SQL Server的安全配置,经过以上的配置,可以让SQL Server本身具备足够的安全防范能力。当然,更主要的还是要加强内部的安全控制和管理员的安全培训,而且安全性问题是一个长期的解决过程,还需要以后进行更多的安全维护。
如何保证网络数据库的安全
数据库的安全性是指保护数据库以防止非法使用所造成的数据泄密、更改或破坏安全性控制的方法安全性控制是指要尽可能地杜绝任何形式的数据库非法访问。常用的安全措施有用户标识和鉴别、用户存取权限控制、定义视图、数据加密、安全审计以及事务管理和故障恢复等几类1.用户标识和鉴别用户标识和鉴别的方法是由系统提供一定的方式让用户标识自己的身份,系统内部记录着所有合法用户的标识,每次用户要求进入系统时,由系统进行核实,通过鉴定后才提供其使用权。为了鉴别用户身份,一般采用以下几种方法(1)利用只有用户知道的信息鉴别用户(2)利用只有用户具有的物品鉴别用户(3)利用用户的个人特征鉴别用户。用户存取权限控制用户存取权限是指不同的用户对于不同的数据对象有不同的操作权限。存取权限由两个要素组成:数据对象和操作类型。定义一个用户的存取权限就是要定义这个用户可以在哪些数据对象上进行哪些类型的操作权限分系统权限和对象权限两种。系统权限由DBA授予某些数据库用户,只有得到系统权限,才能成为数据库用户。对象权限是授予数据库用户对某些数据对象进行某些操作的权限,它既可由DBA授权,也可由数据对象的创建者授予。授权定义经过编译后以一张授权表的形式存放在数据字典中。定义视图为不同的用户定义不同的视图,可以限制用户的访问范围。通过视图机制把需要保密的数据对无权存取这些数据的用户隐藏起来,可以对数据库提供一定程度的安全保护。实际应用中常将视图机制与授权机制结合起来使用,首先用视图机制屏蔽一部分保密数据,然后在视图上进一步进行授权。数据加密数据加密是保护数据在存储和传递过程中不被窃取或修改的有效手段。数据加密技术在8.3节中已有详细介绍。安全审计安全审计是一种监视措施,对于某些高度敏感的保密数据,系统跟踪记录有关这些数据的访问活动,并将跟踪的结果记录在审计日志(audit log)中,根据审计日志记录可对潜在的窃密企图进行事后分析和调查6.事务管理和故障恢复事务管理和故障恢复主要是对付系统内发生的自然因素故障,保证数据和事务的一致性和完整性故障恢复的主要措施是进行日志记录和数据复制。在网络数据库系统中,分布事务首先要分解为多个子事务到各个站点上去执行,各个服务器之间还必须采取合理的算法进行分布式并发控制和提交,以保证事务的完整性。事务运行的每一步结果都记录在系统日志文件中,并且对重要数据进行复制,发生故障时根据日志文件利用数据副本准确地完成事务的恢复Oracle数据库的安全机制简介Oracle主要提供用户标识和鉴别、授权与检查、审计等系统级的安全性措施以及通过触发器灵活定义的用户级安全性措施1.Oracle的用户标识和鉴别Oracle系统预定义了SYS和SYSTEM两个用户。SYS用户拥有操作Oracle数据字典和相关的数据库对象的权限;SYSTEM用户拥有操作Oracle应用开发工具所使用的表的权限。SYS和SYSTEM用户分别用系统给定的口令登录。其他用户使用CREATE USER语句建立,同时用户的口令通过加密后存储在数据字典中。Oracle的授权与检查机制Oracle系统的权限包括系统权限和对象权限两类,采用非集中式的授权机制,即DBA负责授予与回收系统权限,每个用户授予与回收自己创建的数据库对象的权限Oracle也是将授权信息记录在数据字典的授权表中。Oracle的审计技术在Oracle中,审计分为语句审计、特权审计和模式对象审计。其中,语句审计只允许审计SQL语句,不对SQL语句引用的模式进行审计。特权审计只审计系统权限的使用。而模式对象审计则审计具体的数据操纵语言(DML,Data Manipulation Language)语句和制定模式的GRANT和REVOKE语句。特权审计和模式对象审计针对所有用户,通常由DBA设置在Oracle中,审计设置以及审计内容均存放在数据字典中。用户定义的安全性措施除了系统级的安全性措施外,Oracle还允许用户使用数据库触发器定义更复杂的用户级安全性措施。触发器定义后,也存放在数据字典中。用户每次执行特定的操作时都会自动触发对应的触发器,系统检查触发器中设定的执行条件是否符合,如不符合则不执行触发器中指定的操作综上所述,Oracle提供了多种安全性措施,提供了多级安全性检查。数据字典在Oracle的安全性授权和检查以及审计技术中起着重要作用。网络数据库安全性技术随着互联网技术的日益普及,网络数据库已经得到了普遍应用,随之而来的则是网络数据库的安全性问题。特别是近几年,随着企业信息建设的不断深化,企业中涉及网络数据库安全方面的问题也越来越多。如何有效提高网络数据库的安全防御措施,建立一套行之有效的数据库安全防御机制,已经是企业需要首先解决的问题。网络数据库安全问题经常涉及到的是数据库数据的丢、非法用户对数据库的侵入等。针对以上两个方面的问题,应该采取具体的应对措施,以实现企业核心数据的安全防护。首先,针对网络数据库数据丢失的问题,应该着重以下几个方面的工作:1、服务器存储系统硬盘作为服务器数据存储的主要设备,在正常运行过程中,一点小的故障都有可能造成硬盘物理损坏,所以一般服务器存储系统要求采用 Raid磁盘阵列,以此来增强服务器存储系统的容错能力。2、数据备份机制建立一套行之有效的数据备份机制,是保障企业网络数据安全的又一项重要内容。对于一些非常重要的数据要运用其它设备时时执行备份,定期定时做相对完备的备份方案。作为企业用户来说,由于数据量上的原因,在使用磁盘阵列的同时,还应考虑采用磁带机作为数据备份设备。在解决好数据丢失问题的基础上,需要考虑的则是如何应对网络数据库非法入侵的问题。网络技术的飞速发展,使各行业的信息化管理水平有了很大程度的提高,同时也带动了整个企业的管理效率的提高,但随之而来的问题是网络非法入侵者不断出现。入侵者的目的往往针对企业核心机密,或是对数据的蓄意破坏。对于企业网络数据库管理人员来说,如何在数据库本身以及在网络层面上采取有效措施,防止数据库系统的非法入侵,是一个非常艰巨的任务。制定数据库系统安全策略,主要分以下几个方面:1.数据库用户的管理,按照数据库系统的大小和数据库用户所需的工作量,具体分配数据库用户的数据操作权限,控制系统管理员用户账号的使用。2.建立行之有效的数据库用户身份确认策略,数据库用户可以通过操作系统、网络服务以及数据库系统进行身份确认,通过主机操作系统进行用户身份认证。 3.加强操作系统安全性管理,数据服务器操作系统必须使用正版软件,同时要有防火墙的保护。另外,根据实际需要只开放涉及业务工作的具体网络端口,屏蔽其它端口,这样可以在较大程度上防止操作系统受入侵。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!