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

MSSQL
用SQL语句实现替换字符串
mssql查找备注(text,ntext)类型字段为空的方法
MSSQL数据类型及长度限制详细说明
SQL Server下几个危险的扩展存储过程
一些SQL Server存储过程参数及例子
sql高级技巧几个有用的Sql语句
SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
用SQL建立索引的方法步骤
MSsql每天自动备份数据库并每天自动清除log的脚本
mssql无数据库日志文件恢复数据库的方法
SQL Server常用管理命令小结
SQL SERVER性能优化综述(很好的总结,不要错过哦)
sqlserver 游标的简单示例
sqlserver只有MDF文件恢复数据库的方法
在SQL Server启动时自动执行存储过程。
在 SQLSERVER 中快速有条件删除海量数据
阿拉伯数字转大写中文_财务常用sql存储过程
SQL Server存储过程的基础说明
列出SQL Server中具有默认值的所有字段的语句
文本、Excel、Access数据导入SQL Server2000的方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 72 ::
收藏到网摘: 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),并允许组内每一用户共享对同一数据对象的相同存取权限。将用户加入用户组以及将用户从用户组删除的操作应与指定用户组对哪些数据对象拥有哪些权限的操作分离。但是注意记录用户组内有哪些用户的最佳位置还是目录(或为数据库自身)。描述了一个用户组嵌套的系统,并提到“将用户分成有层次的用户组,提供了强有力的管理有着大量用户以及数据对象的大型系统的工具”。