数据库第九章 数据库安全性-new
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用户标识和鉴定
数据库用户管理 在SQL Server中,登录对象和用户对象是SQL Server进行权限管理的两种不同的对象。 – 登录对象:服务器方的一个实体,使用一个登录名可 以与服务器上的所有数据库进行交互。 – 用户对象:一个或多个登录对象在数据库中的映射, 可以对用户对象进行授权,以便为登录对象提供对数 据库的访问权限,一个登录名可以被授权访问多个数 据库,一个登录名在每个数据库中只能映射一次。
审计
审计功能启用一个专用的审计日志(Audit Log),系统自动将用户对数据库的所有操作 记录在上面 DBA可以利用审计日志中的追踪信息,重现导 致数据库现有状况的一系列事件,以找出非法 存取数据的人 C2以上安全级别的DBMS必须具有审计功能
审计
审计日志一般包括下列内容: – (1) 操作类型(如修改、查询等) – (2) 操作终端标识与操作人员标识 – (3) 操作日期和时间 – (4) 操作的数据对象(如表、视图、记录、 属性等) – (5) 数据修改前后的值
用户标识与鉴定
基本方法
– 系统提供一定的方式让用户标识自己的名字或身份; – 系统内部记录着所有合法用户的标识; – 每次用户要求进入系统时,由系统核对用户提供的身 份标识; – 通过鉴定后才提供机器使用权。 – 用户标识和鉴定可以重复多次
用户标识与鉴定
让用户标识自己的名字或身份的方法 – 用户名/口令 简单易行,容易被人窃取
视图
TABLE
基本表 数据库
TABLE DATABASE
用户权限
建表(CREATETAB)的权限:属于DBA DBA授予-->普通用户 基本表或视图的属主拥有对该表或视图的一切操作权限 接受权限的用户 –一个或多个具体用户 –PUBLIC(全体用户)
存取控制 –授权回收
授出的权限可以由DBA或其他的授权者收回 revoke <权限>[,<权限>]… [on <对象类型> <对象名>] from <用户>[,<用户> …]
存取控制
用户权限: 用户对数据库中的不同数据对象 允许执行的操作权限
不同类型的数 据对象有不同 的操作权力
数据本身: 表、属性列 外模式, 模式, 内模式
关系系统中的存取权限: 不同的DBMS具体 实现方法是存在一些差别的
wk.baidu.com
DBMS的存取控制
存取控制机制包括: 定义用户权限, 该定义被存放到数据字典中 合法权限检查, 根据数据字典检查用户权限
USER2 USER3 USER4
操作权限
对象 属性列 对象类型 TABLE 操 作 权 限 SELECT,INSERT,UPDATE DELETE,ALL PRIVIEGES SELECT,INSERT,UPDATE DELETE,ALL PRIVIEGES SELECT,INSERT,UPDATE DELETE,ALTER, INDEX, ALL PRIVIEGES CREATETAB
用户标识和鉴定
数据库用户管理 SQL Server可使用下列两种方法来管理数据库用户 – 使用SQL Server企业管理器管理数据库用户; – 使用SQL Server系统存储过程sp_grantdbaccess 管理数据库用户 在SQL Server中主要有两种类型的角色 – 服务器角色 – 数据库角色
强制控制
强制访问控制模型基于与每个数据项和每个用户关联 的安全性标识(Security Label)。安全性标识被分为若 干级别 – 绝密 (Top Secret) – 机密 (Secret) – 秘密 (Confidential) – 一般 (Public) 数据的标识称为密级(Security Classification) 用户的标识称为许可证级别 (Security Clearance)
强制控制
当某一用户以某一密级进入系统时,在确定该 用户能否访问系统上的数据时应遵守如下规则 – (1) 当且仅当用户许可证级别大于等于数据 的密级时,该用户才能对该数据进行读操作 – (2) 当且仅当用户的许可证级别小于或等于 数据的密级时,该用户才能对该数据进行写 操作
视图机制
视图机制把要保密的数据对无权存取这些数据 的用户隐藏起来,从而自动地对数据提供一定 程度的安全保护 视图机制更主要的功能在于提供数据独立性, 其安全保护功能太不精细,往往远不能达到应 用系统的要求
– 每个用户预先约定好一个计算过程或者函数 系统提供一个随机数 用户根据自己预先约定的计算过程或者函数进行 计算 系统根据用户计算结果是否正确鉴定用户身份
用户标识和鉴定
SQL Server提供两种不同的方法来验证用户进入服务 器。用户可以根据自己的网络配置决定使用其中一种。 – Windows验证 NT以上O.S.:允许SQL Server使用O.S.的用户 名和口令 – SQL Server验证 用户传给服务器的登录信息与系统表syslogins 中的信息进行比较。如果两个口令匹配,SQL Server允许用户访问服务器。如果不匹配,SQL Server不允许访问,并且用户会从服务器上收到 一个出错信息
授权管理
属于任意控制
DBA
授权
授权
Role
用户
用户
用户
用户
强制控制
任意访问控制是关系数据库的传统方法,可对 数据库提供充分保护,但它不支持随数据库各 部分的机密性而变化,技术高超的专业人员可 能突破该保护机制获得未授权访问 另外,由于用户对数据的存取权限是“自主” 的,用户可以自由地决定将数据的存取权限授 予何人、决定是否也将“授权”的权限授予别 人。在这种授权机制下,仍可能存在数据的 “无意泄露”
例子: 把用户wang和zhang修改成绩的权限收回 revoke update(Grade) on table SC from wang, zhang; 例子: 收回所有用户对SC表的查询授权 revoke SELECT on TABLE SC from PUBLIC;
授权回收操作是级联的 USER1 USER2 USER3 USER4
存取控制 – 授权
with grant option子句 例子: 把对表SC的查询权限、修改成绩权限授给wang和 zhang, 并允许wang和zhang将该权限授予他人 grant select, update(Grade) on table SC to wang, zhang with grant option; DBA、对象的建立者和经过with grant option授权的用户 可以把他们对该对象具有的操作权限授予其它的合法用户 USER1
数据库角色(Role)
如果要给成千上万个雇员分配许可,将面临很大的管 理难题,每次有雇员到来或者离开时,就得有人分配 或去除可能与数百张表或视图有关的权限。这项任务 不但耗时,而且容易出错。 一个相对简单有效的解决方案就是定义数据库角色。 数据库角色是被命名的一组与数据库操作相关的权限, 即一组相关权限的集合。 可以为一组具有相同权限的用户创建一个角色。使用 角色来管理数据库权限可以简化授权的过程。
非法使用数据库的情况
用户编写一段合法的程序绕过DBMS及其授权机制,通 过操作系统直接存取、修改或备份数据库中的数据 直接或编写应用程序执行非授权操作 通过多次合法查询数据库从中推导出一些保密数据 – 例如:某数据库应用系统禁止查询单个人的工资,但 允许查任意一组人的平均工资。用户甲想了解张三的 工资 首先查询包括张三在内的一组人的平均工资 然后查用自己替换张三后这组人的平均工资 推导出张三的工资 破坏安全性的行为可能是无意的,故意的,恶意的
数据库系统的安全机制
身份验证 授权机制 约束机制 审计
用户
操作系统
数据库服务器 (RDBMS)
存储过程
触发器
视图
计算机系统中的安全模型
安全性控制层次
高 低
应用
方法: 用户标识 和鉴定
DBMS
OS
DB
存取控制 审计 视图
操作系统 安全保护
密码存储
数据库安全性控制的常用方法
用户标识和鉴定(Identification & Authentication ) – 系统提供的最外层安全保护措施 存取控制 – 访问权限 通过视图调整授权 – 定义可向用户授权数据库特定部分的用户视图 审计 – 追踪信息,重现导致数据库现有状况的一系列事件 密码存储 – 使用加密技术保护机密数据
SQL语法分析 语义检查
用户 用户、DBA SQL: SQL: 定 Grant 查询 义 Revoke 存 储 DBMS 权 限
DAC检查
检 查 存 储 权 限
安全检查 MAC检查
继续
数据字典
数据库
任意控制(DAC) 强制控制(MAC)
存取控制 – 授权(Authorization)
谁定义? DBA和表的建立者(即表的属主) 如何定义? SQL语句:
第九章: 数据库安全性
数据库安全性概述 数据库安全性控制
Oracle数据库数据安全性控制介绍
对数据库安全的威胁
无意损坏 心存不满的 天窗 专业人员 数据库 工业间谍 数据复制 受保护数据 通信损坏 非法访问 黑客
物理损坏 火灾,水灾等
蓄意破坏者
数据库安全概述
数据库系统的安全保护措施是否有效是数据库系 统主要的性能指标之一 数据库的安全性 指保护数据库,防止因用户非法使用数据库 所造成的数据泄漏、更改或破坏 数据的保密 指用户合法地访问到机密数据后能否对这些 数据保密 通过制订法律道德准则和政策法规来保证
用户标识和鉴定
服务器登录标识管理 sa和Administrator是系统在安装时创建的分别用 于SQL Server混合验证模式和Windows验证模式 的系统登录名。如果用户想创建新的登录名或删除 已有的登录名,可使用下列两种方法 – 使用SQL Server企业管理器管理登录名 – 使用SQL Server系统存储过程管理登录名
审计功能的可选性
审计很费时间和空间,所以DBMS往往都将其作为可选特
征 – DBA可以根据应用对安全性的要求,灵活地打开或关闭 审计功能
强制控制
强制访问控制克服了任意访问控制的缺点。 在强制访问控制方法中,不能由一个用户不加控 制地将访问权限授予或传递给另一用户。 强制访问控制方法是指系统为了保证更高程度的 安全性,它不是用户能直接感知或进行控制的。 强制访问控制主要适用于对数据有严格要求而固 定密级分类的部门,如军事部门或政府部门
视图机制
在实际应用中通常是视图机制与授权机制配合 使用,首先用视图机制屏蔽掉一部分保密数据, 然后在视图上面再进一步定义存取权限 这时视图机制实际上间接实现了支持存取谓词 的用户权限定义
视图机制
例如:USER1只能检索计算机系学生的信息 – (1) 先建立计算机系学生的视图CS_Student CREATE VIEW CS_Student AS SELECT FROM Student WHERE Sdept=‘CS’; – (2) 在视图上进一步定义存取权限 GRANT SELECT ON CS_Student TO USER1;
GRANT
-将对指定操作对象的指定操作权限授予指定的
用户 REVOKE -从指定用户那里收回对指定对象的指定权限
存取控制 – 授权
GRANT语句的一般格式: grant <权限>[,<权限>]… [on <对象类型> <对象名>] to <用户>[,<用户> …] [with grant option]; 例子: 把查询Students表的权限授给用户wang grant select on table Students to wang; 例子: 把对Students和SC表的所有访问权限授给全部用户 grant all priviliges on table Students, SC to public; DBA把在数据库SC中建立表的权限授予用户zhao grant createtab on database SC to zhao;