知识大全 操作系统集成安全性(2)
Posted 语句
篇首语:学新温故,学以致用,总结提高。。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 操作系统集成安全性(2)相关的知识,希望对你有一定的参考价值。
SQL实战新手入门:操作系统集成安全性(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
操作系统集成安全性( )
( ) 接下来需要创建一个用户 他只具有SELECT该视图的特权而没有其他特权 该用户将自动地被指定给PUBLIC角色
CREATE LOGIN LibraryGuest
WITH PASSWORD = ein ;
USE library;
CREATE USER LibraryGuest FOR LOGIN LibraryGuest;
GO;
另外 也可以使用已经存在的登录名GUEST
( ) 授予新用户访问服务器和对vwLastYearBooks视图运行SELECT语句的特权
GRANT SELECT ON library vwLastYearBooks TO LibraryGuest;
REVOKE SELECT INSERT DELETE ON books FROM LibraryGuest;
GO;
( ) 断开RDBMS的连接 并使用新的凭据 用户ID和密码 重新连接数据库
( ) 运行下面的查询
SELECT * FROM vwLastYearBooks
( ) 尝试对BOOKS表运行SELECT查询
示例说明
新创建的用户LibraryGuest被授予了对视图vwLastYearBooks的SELECT特权 并撤消了该用户对BOOKS表选取数据的特权 因此即使视图所显示的数据来自于BOOKS表 但BOOKS表本身对于用户LibraryGuest是不可访问的
使用约束提供安全性
约束常常用于维护完整性 包括参照完整性 数据完整性(也称为实体完整性)或者域完整性
域完整性约束 例如CHECK约束 用于检验数据是否具有正确的格式和内容 例如 在LIBRARY数据库中 下面代码中定义的CHK_ISBN约束用于检验输入到数据库中的ISBN号是否具有指定的长度
ALTER TABLE books
ADD CONSTRAINT c_ISBN
CHECK (LEN(bk_isbn) = OR LEN(bk_isbn) = )
这样 无论是合法还是非法的企图 只要输入了长度不等于 或 的无效数据就会产生一个错误 数据被保护以避免出现不一致 在将数据提交给数据库之前先对其进行检验 这是一种非常高效的安全措施
DEFAULT值是强制执行域完整性的另外一种机制 当声明了DEFAULT值后 如果在查询中省略了数据 则DEFAULT约束可以确保使用一个默认值而不是使用空白或NULL值
DEFAULT约束是破坏了安全性还是代表了一种安全性的强制机制 这仍然需要讨论 一方面 它避免了数据的不一致性 这是好的方面 但是另外一方面 它通过避免疏忽或遗漏造成的错误降低了对数据录入的精确要求 并且方便了恶意入侵者借机插入数据
实体完整性本质上指的是一行数据 它是通过索引和诸如PRIMARY KEY约束或UNIQUE约束等来维护的 它可以高效地防止用户输入重复的值 例如 在社会安全号码(SocialSecurity number SSN)列上设置约束 可以避免恶意用户使用相同的SSN和不同的名字来重复地获得好处
对于声明了关系的表 参照完整性维护着表与表之间关系的健康 参照完整性是 一个都不能少 方针的RDBMS版本 它强制执行这样的约束 如果父表中没有相对应的父记录 则子表中也不允许存在子记录 只要在子表中还具有一条对应的子记录 就不允许删除父表中与之对应的父记录
约束本身只能为数据库的安全性提供非常有限的保护 应该作为RDBMS整体安全性所提供的更为健壮的安全机制的补充
存储过程和触发器(在第 章中已经介绍过)也是实现安全性的措施之一 存储过程有助于限制对数据库对象的访问并实现输入检验 触发器则是存储过程的一个变种 当在表上执行INSERT UPDATE或DELETE操作时 它将自动执行 用于检验数据或者累积审计信息
SQL注入
对于使用了动态构建SQL语句(关于动态SQL的更多信息请参考第 章)的数据库应用程序 SQL注入是利用该弱点进行攻击的一种技术 SQL注入技术背后的思想是修改底层的SQL语句 要么在WHERE子句中应用更宽泛的选取条件 要么在SQL语句的末尾追加额外的SQL命令 例如 如果在客户端应用程序中使用下面的SQL语句检查一个特定的user_ID(这样的语句显然是蹩脚的) 期望的结果是如果没有返回任何行 则表示身份验证失败
SELECT * FROM users WHERE user_id = + <user_ID> +
现在假设恶意攻击者在user_ID域中输入了 somebody OR a = a 那么该语句将翻译为下面的语句
SELECT FROM Users WHERE user_ID = somebody OR a = a
由于没有somebody这个user_ID 因此WHERE子句的第一部分将会失败 但是对第二个部分 a = a 求值的结果为TRUE 因此将返回一行数据 从而可能会认为该用户已经通过了身份验证
在前面的例子中 攻击者还可以采用输入<user_ID> ;<另外一条SQL语句>这样的形式 迫使服务器执行一个意料之外的语句 例如
SELECT FROM Users WHERE user_ID = somebody ; DELETE FROM books;
如果执行了上面的语句 将删除BOOKS表中的所有记录(这要求对数据库的结构具有一定的知识 或者聪明地猜测出攻击方的意图)
返回目录 SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
cha138/Article/program/SQL/201311/16439相关参考
1)应设置安全防范系统中央监控室。应能通过统一的通信平台和管理软件将中央监控室设置与各子系统设备联网,实现由中央控制室对全系统进行信息集成的自动化管理。 2)应能对各子系统的运行状态进行监测和控制,
SQL实战新手入门:操作系统集成安全性(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 操作
SQL实战新手入门:操作系统集成安全性(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 操作
二锅头 1.安全防范系统一般由安全管理系统和若干个相关子系统组成。 2.安全防范系统的结构模式按其规模大小、复杂程度可有多种构建模式。按照系统集成度的高低,安全防范系统分为集成式、组合式、分散
二锅头 1.安全防范系统一般由安全管理系统和若干个相关子系统组成。 2.安全防范系统的结构模式按其规模大小、复杂程度可有多种构建模式。按照系统集成度的高低,安全防范系统分为集成式、组合式、分散
二锅头 1)应设置安全防范系统中央监控室。应能通过统一的通信平台和管理软件将中央监控室设置与各子系统设备联网,实现由中央控制室对全系统进行信息集成的集中管理和控制。 2)应能对各子系统的运行状
二锅头 1)应设置安全防范系统中央监控室。应能通过统一的通信平台和管理软件将中央监控室设置与各子系统设备联网,实现由中央控制室对全系统进行信息集成的集中管理和控制。 2)应能对各子系统的运行状
一、智能化集成系统的功能应符合下列要求: 1、应以满足建筑物的使用功能为目标,确保对各类系统监信息资源的共享和优化管理。 2、应以建筑物的建设规模、业务性质和物业管理模式等为依据,建立实用、可
一、智能化集成系统的功能应符合下列要求: 1、应以满足建筑物的使用功能为目标,确保对各类系统监信息资源的共享和优化管理。 2、应以建筑物的建设规模、业务性质和物业管理模式等为依据,建立实用、可
二锅头 1.二级防护安全防范工程宜由入侵报警、视频安防监控、出入口控制、电子巡查、保安通讯等子系统集成或组合,并宜通过监控中心的安全管理系统实现对各子系统的管理和监控。 2.禁区宜设置入侵报警