第五章数据库的保护 5.1数据库的安全性 5.2数据库的完整性 5.3数据库的并发控制 5.4数据库的恢复 5.5数据库的复制与镜像
第五章 数据库的保护 5.1 数据库的安全性 5.2 数据库的完整性 5.3 数据库的并发控制 5.4 数据库的恢复 5.5 数据库的复制与镜像
5.1数据库的安全性 ● 数据库的安全性是指保护数据库以防止不合法 的使用造成泄漏、更改或破坏等。 ●采用的方法有: -用户标识和鉴别 存取权限控制 -使用视图 审计 -数据加密 ·数据库系统的安全模型 应用 DBMS OS DB 用户标识 存取控制 操作系统保护 密码存储
5.1 数据库的安全性 ⚫ 数据库的安全性是指保护数据库以防止不合法 的使用造成泄漏、更改或破坏等。 ⚫ 采用的方法有: – 用户标识和鉴别 – 使用视图 – 数据加密 ⚫ 数据库系统的安全模型 – 存取权限控制 – 审计 应用 DBMS OS DB 用户标识 存取控制 操作系统保护 密码存储
5.1.1用户标识和鉴别 ●一般由系统管理员(DBA)为每个用户建立一 个用户名(用户标识/帐号)和用户口令。用户 必须使用此标识方可进入系统 ●语法: CREATE USER IDENTIFIED BY 。二次登录问题
5.1.1用户标识和鉴别 ⚫ 一般由系统管理员(DBA)为每个用户建立一 个用户名(用户标识/帐号)和用户口令。用户 必须使用此标识方可进入系统 ⚫ 语法: CREATE USER IDENTIFIED BY ⚫ 二次登录问题
5.1.2存取控制 。存取权限两要素: -数据对象 一操作类型 ●授权 一定义某用户对哪些数据对象具有哪些类型的操作 ·数据对象的粒度 一表、列、行(一般由视图实现) 一 粒度越细,授权子系统越灵活,安全性越完善。但 系统开销越大,数据字典庞大
5.1.2存取控制 ⚫ 存取权限两要素: – 数据对象 – 操作类型 ⚫ 授权 – 定义某用户对哪些数据对象具有哪些类型的操作 ⚫ 数据对象的粒度 – 表、列、行(一般由视图实现) – 粒度越细,授权子系统越灵活,安全性越完善。但 系统开销越大,数据字典庞大
>权限限制的种类 一对用户进行控制。 用户只可以访问自己的子模式 一对操作类型进行控制 操作一般包括:查询、修改、插入、删除等 用户可以被授予不同的操作权限 一对数据对象的控制 用户可以被限制访问某些表或表的列
➢ 权限限制的种类 – 对用户进行控制。 用户只可以访问自己的子模式 – 对操作类型进行控制 操作一般包括:查询、修改、插入、删除等 用户可以被授予不同的操作权限 – 对数据对象的控制 用户可以被限制访问某些表或表的列
>权限组(角色)概念 一角色是数据库预先设置的一系列具有某种常用权限 的组合。某用户属于一个角色就拥有该角色的所有 权限了 >SYBASE的一些角色 sa role -sso role sybase ts role navigator role
➢ 权限组(角色)概念 – 角色是数据库预先设置的一系列具有某种常用权限 的组合。某用户属于一个角色就拥有该角色的所有 权限了 ➢ SYBASE的一些角色 – sa_role – sso_role – sybase_ts_role – navigator_role
>ORACLE中的三类角色 Connect(用于数据库录入人员) ●可以访问ORACLE ●对于允许的表可以做查询和更新操作。 。建立视图和同义词 -Resource(用于开发人员) ●具有Connect的所有权限 ●建表、索引、聚簇等权限 。对于自己创建的对象可以操作并可以给他人赋权 ●使用审计命令 -DBA(用于管理人员) ●具有Resource的所有权限 ●可以访问任何用户的数据 ●授予或收回用户权限 ●建立公共同义词 ●建立和修改分区 ●执行数据库的卸出 ●审计
➢ ORACLE中的三类角色 – Connect(用于数据库录入人员) ⚫ 可以访问ORACLE ⚫ 对于允许的表可以做查询和更新操作。 ⚫ 建立视图和同义词 – Resource(用于开发人员) ⚫ 具有Connect的所有权限 ⚫ 建表、索引、聚簇等权限 ⚫ 对于自己创建的对象可以操作并可以给他人赋权 ⚫ 使用审计命令 – DBA(用于管理人员) ⚫ 具有Resource的所有权限 ⚫ 可以访问任何用户的数据 ⚫ 授予或收回用户权限 ⚫ 建立公共同义词 ⚫ 建立和修改分区 ⚫ 执行数据库的卸出 ⚫ 审计
●Oracle中存取控制的语法 -授权语句/新建用户 GRANT [CONNECT RESOURCE DBAI TO [IDENTIFIED BY ] 一收回权限/删除用户: REVOKE [CONNECT RESOURCE DBA]FROM 一操作权限控制 GRANTONTO [WITH GRANT OPTION] ●其中“操作权”包括:SELECT、NSERT、DELETE、 UPDATE、ALTER、NDEX、ALL ●对象拥有者自然用于对对象的操作权,只有拥有者和DBA 可以将对象的操作权赋予别人
⚫ Oracle中存取控制的语法 – 授权语句/新建用户 GRANT [CONNECT | RESOURCE | DBA] TO [IDENTIFIED BY ] – 收回权限/删除用户: REVOKE [CONNECT | RESOURCE | DBA] FROM – 操作权限控制 GRANT ON TO [WITH GRANT OPTION] ⚫其中“操作权”包括:SELECT、INSERT、DELETE、 UPDATE、ALTER、INDEX、ALL ⚫对象拥有者自然用于对对象的操作权,只有拥有者和DBA 可以将对象的操作权赋予别人
5.1.3定义视图 ●可以通过建立视图屏蔽用户不该看到的数据内 容,但视图的主要功能是实现数据独立性,其 安全保护功能不够精细 5.1.4数据加密 ●( ORACLE和SYBASE数据库都提供对存储过程 的加密,在SYBASE中使用SP HIDETEXT
5.1.3定义视图 ⚫ 可以通过建立视图屏蔽用户不该看到的数据内 容,但视图的主要功能是实现数据独立性,其 安全保护功能不够精细 5.1.4数据加密 ⚫ ORACLE和SYBASE数据库都提供对存储过程 的加密,在SYBASE中使用SP_HIDETEXT
5.1.5审计 ● 非强制性安全保护措施,自动记录对数据库的 访问存取痕迹 ·分为用户级和系统级 -用户级主要用户设置,针对用户自己创建的对象的 审计,包括对这些对象的各种访问 系统级审计是DBA进行的,针对用户登录的成功与 否以及对数据库级权限的操作 ●1 审计常常消耗大量时间和空间资源,所以一般 作为可选项可灵活打开和关闭,视系统的安全 性要求而定 例:对SC表的ALTER和UPDATE进行审计 AUDIT ALTER,UPDATE ON SC 取消对SC表的任何审计 NOAUDIT ALL ON SC
5.1.5审计 ⚫ 非强制性安全保护措施,自动记录对数据库的 访问存取痕迹 ⚫ 分为用户级和系统级 – 用户级主要用户设置,针对用户自己创建的对象的 审计,包括对这些对象的各种访问 – 系统级审计是DBA进行的,针对用户登录的成功与 否以及对数据库级权限的操作 ⚫ 审计常常消耗大量时间和空间资源,所以一般 作为可选项可灵活打开和关闭,视系统的安全 性要求而定 例:对SC表的ALTER和UPDATE进行审计 AUDIT ALTER,UPDATE ON SC 取消对SC表的任何审计 NOAUDIT ALL ON SC