安全问题不是数据库系统所独有的,所有的计算机都普遍遇到这样的问题。
数据库的安全是指保护数据,不把数据泄露给不相关的人员,避免数据库被不法人员所攻陷。
计算机系统的安全性问题
随着计算机网络技术的日益发展和壮大,计算机安全性问题越来越得到了人们的重视。所谓计算机的安全性,我们一般考虑保护计算机的硬件、软件以及数据,防止因为偶然或者恶意的原因使系统遭到破坏,数据找到篡改或者泄露等。
计算机安全不仅涉及计算机系统本身的技术问题、管理问题,而且还涉及到犯罪学、心理学等。
通常人们将计算机安全系统的问题分为三大类:
1、技术安全
在计算机系统中采用具有一定安全性的硬件、软件来实现对计算机系统以及所存储数据的保护如:
⑴、硬件防火墙
⑵、杀毒软件
使用这些技术来防止计算机系统所受到无意的或者恶意的攻击。保证我们的系统在运行的时候数据不丢失、不泄露也不增加。黑客攻击是非常危险的,比如黑客盗取QQ密码、银行账户、在网页上挂马等。我们采用一定的硬件和软件,保证我们的系统受到攻击的时候仍然能够正常的运行。
2、管理安全
在技术安全之外,比如说:软硬件的意外故障、场地的意外事故、管理不善导致的计算机设备或者数据介质的损害、丢失这些安全问题,通常视为管理安全。
比如911事件之后,大量设在美国世界贸易中心的投资公司,他们的电脑都损坏了,因此丢失了大量的数据。数据丢失非常遗憾但实际上还是管理不善导致的。
3、政策法律安全
政策法律它主要是指政府部门建立的有关计算机犯罪、数据安全保密等等先关的法律道德准则。
计算机系统安全性的评测等级
由于人们对计算机系统的安全性的要求越来越高,为此在计算机安全技术方面逐步发展了一套可信计算机评测标准。
如图一,可信计算机评测标准它将计算机系统的安全等级分为4类7级.
分别是ABCD四类,每个类分为几个等级。 从低级到高级依次为D、C、B和A四类,A是最高的一类,每一类都代表一个保护敏感信息的评判准则,并且一类比一类严格。
D类:D类是最小的保护类。这是安全级别最低的一类,不再分级,这类是那些通过评测但达不到较高级别安全要求的系统。早期的商用系统属于这一类。
C类:C类是无条件的保护类。C类提供的无条件的保护也就是“需要则知道”(Need-to-Known)的保护,C类分为C1和C2两个子类。
①C1是无条件的安全保护类。这是C类中安全级别较低的一个子类,提供的安全策略是无条件的访问控制,具有识别与授权的责任。早期的UNIX系统属于这一类。
② C2是有控制的存取保护类。这是C类中安全级别较高的一个子类,除了提供C1中的策略与责任外,还有访问保护和审计跟踪功能。如SCOUNIX。
B类:B类是属强制保护类,要求系统在其生成的数据结构中带有标记,并要求提供对数据流的监视,B类分为B1、B2和B3三个子类。
①B1是标记安全保护类,是B类中的安全级别最低的子类,除满足C类要求外,要求提供数据标记。
② B2是结构安全保护类,是B类中的安全级别居中的子类,除满足B1要求外,要实行强制性的控制。
③B3是安全域保护类,是B类中的安全级别最高的子类,提供可信设备的管理和恢复,即使计算机崩溃,也不会泄露系统信息。
A类:A类是经过认证的保护类,是安全系统安全级别最高的类,这类系统可建立在具有结构、规范和信息流密闭的形式模型基础之上。A1类也是经过认证保护类。在TCSEC准则中,共定义了四类7级可信计算机系统准则。例如,银行界一般都使用满足C2级或更高级别的计算机系统。
数据库安全控制
在互联网迅速发展的今天,数据安全是每个企业最关心的问题,数据库的安全也就成为了大家关注的焦点。数据库一般采用用户标识和鉴别、存取控制、视图机制、密码存储等这些技术用来进行安全控制。
用户标识和鉴别的方法很多,常用的方法是:
1、用户标识和鉴别
⑴身份认证
用户身份是系统管理员为用户定义的用户名,也称为用户的标示、账号、用户ID、登录名等。它通常记录在计算机系统中,或者数据库中。比如我们使用的SQL Server 2008数据库,它有两种认证方式,一种是Windows身份认证,它的登录名保存在计算机系统中;一种是SQL Server身份验证,它的登录名保存在数据库中。身份认证时将用户输入的用户名与系统合法的用户名进行匹配。从而鉴别这个用户是否是合法的用户,如果是则进入下一步的审核如:密码审核;如果不是则用户不能使用该系统。
⑵口令认证
用户口令是指合法用户自己定义的密码,为了安全性口令是由用户自己定义并且随时可以修改,口令认证是为了进一步对用户进行核实,通常系统要求输入口令,只有口令正确才能进入系统。例如:我们登陆SQL Server 2008输入登录名和密码,只有登录名正确才能进行密码的核实。如果密码正确才可以进入数据库管理系统,反之如果不正确则不能进入。
存取控制
2、存取控制
2、存取控制
存取控制是数据库安全的重要保证,它确保只让有资格的用户去访问数据库。并在其权限内操作数据库中的相关数据,这样没有授权的用户就没办法访问数据库中的数据。存取控制主要由:定义用户权限和检查权限两个部分组成
⑴、定义用户权限
对数据库对象,我们可以进行各种的操作,比如:查询、添加、修改、删除等。或者在指定的数据库中创建数据表,那么在一个系统中不同角色的人员,或者说不同身份的人员他们可以操作的内容不同。
⑵、检查权限
当用户发出存取数据库的操作之后,数据库管理系统首先检查用户,看它是否有权限。如果有就允许;如果没有则阻止。
视图机制
在关系型数据库中,可以给不同的用户定义不同的视图,通过视图机制可以把要保密的数据对没有权限的人员隐藏,从而提供一定程度的安全保护,并且也可以对试图进行授权
数据机制的优点:
⑴数据安全性
⑵数据逻辑独立性
⑶操作简便
审核方法
审核功能就是将用户对数据库的所有操作都记录下来,一旦发现数据被非法的存取,那么数据库管理员就可以利用这些日志,去重现发生非法存取的时候是哪个用户登录,事件发生的时间以及所窃取的内容等。
⑴记录所有数据库的操作⑵重现数据非法存取导致的现状的一系列事件⑶运行审核所消耗的时间和空间⑷数据库管理员根据对安全性的要求,灵活打开或关闭审计功能
数据加密
对于一些高度敏感的数据,比如:银行系统中的用户密码、财务数据、军事数据等,除了上面介绍的数据保护之外,还需要数据加密的技术,数据加密是防止数据在存储或者传输的过程中被窃取的有效手段。
加密的基本思想是将原始的数据,通过一定的算法将原始数据(明文)变换为一种不可识别的格式,也就是密文。
从而使不知道数据算法的人无法获取数据的真正内容,从而保证数据的安全性。
加密的方法通常有两种:
⑴替换方法
使用密钥将明文中的每一个字符替换为密文中的字符。
⑵置换方法
将明文明文中的字符按照不同的顺序重新排列。
唉,完全看不懂,话说当年我学网络管理的时候,还有SQL Sever这门课呢
刚刚开始学,这些都是基础。^_^
额,太专业的说~~~~~