当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server:浅谈数据库的安全性

MSSQL
sql 批量修改数据库表
mssql CASE,GROUP BY用法
利用SQL SERVER建立登录WINDOWS帐号
SQL Server 2008 正式版安装指南 包含序列号
SQL Server 2008图文安装教程
sql 语句 取数据库服务器上所有数据库的名字
sqlserver 数据类型转换小实验
SQL Server 存储过程解析
压缩技术给SQL Server备份文件瘦身
SQL Server 2005 还原数据库错误解决方法
Sql Server datetime问题
SQL语句 操作全集 学习mssql的朋友一定要看
格式导致的Excel导入sql出现异常的解决方法
SQL Server 数据库自动执行管理任务
sql Set IDENTITY_INSERT的用法
sql 修改表的所有者
过程需要参数 ''@statement'' 为 ''ntext/nchar/nvarchar'' 类型
mssql 建立索引
SQL Server 索引结构及其使用(一)--深入浅出理解索引结构
SQL Server 索引结构及其使用(二) 改善SQL语句

MSSQL 中的 SQL Server:浅谈数据库的安全性


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 83 ::
收藏到网摘: n/a

安全性( security )保护数据以防止不合法用户故意造成的破坏;

完整性( integrity )保护数据以防止合法用户无意中造成的破坏;

或者简单地说就是:安全性确保用户被允许做其想做的事情;完整性确保用户所做的事

情是正确的。

当然这两个概念也有相似点:系统应对用户不能违背的约束了如指掌;这些约束必须用

合适的语言给出(通常由DBA),而且必须通过系统日志进行维护; DBMS必须监控用户的操作以确定约束发挥了效用概述安全性问题涉及许多方面,如:

• 法律、社会以及伦理问题(例如:请求者对其请求的信息是否具有合法权利?);

• 物理控制(例如:计算机或终端所在房间是否上锁或受到保护?);

• 政策问题(例如:拥有系统的企业如何控制使用者对数据的存取?);

• 可操作性问题(例如:如果某个密码方案被采用,密码自身又如何保密?);

• 硬件控制(例如:处理单元是否具备安全特性,如存储保护键或保护操作模式?);

• 操作系统支持(例如:底层操作系统在退出时是否抹去了主存和磁盘上的内容?);

最后还包括

数据库系统需专门考虑的问题(例如:数据库系统是否具有数据所有权的概念?)。

现代的DBMS通常采用自主存取控制和强制存取控制这两种方法来解决安全性问题,有的只提供其中的一种方法,有的两种都提供。无论采用哪种存取控制方法,需要保护的数据单元或数据对象包括从整个数据库到某个元组的某个部分。两者的区别为:

• 在自主存取控制方法(discretionary control)中,用户对不同的数据对象具有不同的存取权限(也称为优先权),而且没有固有的关于哪些用户对哪些数据对象具有哪些存取权限

的限制(例如:用户U1能看到A但看不到B,而用户U2能看到B但看不到A)。因此自主存取控制非常灵活。

• 在强制存取控制方法(mandatory control) 中,每一个数据对象被标以一定的密级

(classification level),每一个用户也被授予一个许可证级别(clearance level)。对于任意一个对象,只有具有合法许可证的用户才可以存取。因此,强制存取控制本质上具有分

层特点,且相对比较严格(例如:如果用户U1能看到A但看不到B,这说明B的密级高于A,因此不存在用户U2能看到B但看不到A)。不管我们采用的是自主存取控制方法还是强制存取控制方法,所有有关哪些用户可对哪些数据对象进行操作的决定都是政策决定,这显然超出了DBMS的权限,DBMS只是实施这些决定。这就要求:

• 政策决定的结果( a)需为系统所知(这可通过某一特定的定义语言的语句来实现);

b)需被系统记住(这可通过将它们保存在目录中实现)。

• 必须采用一定的方式检查存取请求是否违背目录中适用的安全性约束(通常用“存取请

求”表示涉及的请求操作、请求对象以及请求用户),这主要通过DBMS的安全性子系(security subsystem)或者授权子系统(authorization subsystem)实现。

• 为了决定哪些安全性约束适用于给定的存取请求,系统必须能识别请求的来源,也就是

请求用户。因此,当用户登录系统时必须给出用户ID以及口令( password )。口令只能为系统所知,并用以保证用户ID的合法性。

关于最后一点,注意一定数量的不同用户可能共享同一ID。这种情况下系统支持用户组(user group),并允许组内每一用户共享对同一数据对象的相同存取权限。将用户加入用户组以及将用户从用户组删除的操作应与指定用户组对哪些数据对象拥有哪些权限的操作分离。但是注意记录用户组内有哪些用户的最佳位置还是目录(或为数据库自身)。描述了一个用户组嵌套的系统,并提到“将用户分成有层次的用户组,提供了强有力的管理有着大量用户以及数据对象的大型系统的工具”。