Oracle(No.9)

数据安全性

数据安全性控制的常用方法

  • 用户标识和鉴别----- 系统提供的最外层安全保护措施

用户标识
口令(系统核对口令以鉴别 用户身份)

  • 存取控制-----定义用户权限,合法权限检查

自主存取控制(DAC)
1)grant(grant update(Sno) on table student to public with grant option)和revoke(revoke update(Sno) on table student from u4)实现
2)用户权限组成:数据对象,操作类型
3) 定义用户存取权限
4)定义存取权限:授权
Oracle(No.9)
强制存取控制(MAC)

  • 视图
  • 审计
  • 密码存储
    注意:DBA拥有所有对象的所有权限

数据完整性

数据的正确性和相容性
1.维护数据库的完整性

1.提供定义完整性约束条件的机制
2.提供完整性检查的方法
3.违约处理

2.实体完整性

create table 中用primary key定义
单属性构成的码
1)定义为列级约束条件
create table student(sno char(9) primary key)
2)定义为表级约束条件
create table student(sno char(9),primary key(sno))
多属性构成的码
1)定义为表级约束条件
create table student(sno char(9),cno char(9),primary key(sno,cno))

3.实体完整性检查和违约处理

1.实体完整性:
插入和修改检查主码是否唯一
插入和修改检查主码的各个属性是否为空
2.参照完整性:
foreign key短语定义列为外码,references短语指明参照的表
create table sc(sno char(9) not null, cno char(9) not null, grade smallint, primary key(sno,cno), foreign key(sno) referencës student(sno), foreign key(cno) referencës student(cno)
3.违约处理Oracle(No.9)
1)拒绝执行(默认)no action
2)级联操作 cascade
3)设置为空值(set-null)
Oracle(No.9)

4.用户定义的完整性

属性上的约束条件的定义(非空:not null 唯一:unique 检查列值:check)
属性上的约束条件检查和违约处理(rdbms检查属性上的约束条件是否被满足)
元组上的约束条件的定义(check 短语定义元组上的约束条件)
元组上的约束条件和违约处理(rdms检查元组上的约束条件是否被满足)

5.完整性约束命名子句

create table student (sno numeric(6)
constraint c1 check(sno between 90 and 340) )
alter table student drop constraint c1
alter table student add constraint c1 check(sno between 30 and 78)

数据的完整性:
1)防止数据库中存在不符合语义的数据,也就是防止数据中存在不正确的数据
2)防范对象:不符合语意,不正确的数据
数据的安全性:
1)保护数据库防止恶意破坏和非法的存储
2)防范对象:非法用户和非法操作