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

用户标识和鉴定

存取控制:自主存取控制和强制存储控制

(定义用户权限,并将用户权限登记到数据字典

分为自主存取控制和强制存取控制)

视图技术

审计技术

数据加密存储和加密传输

 

自主存取控制:grant和revoke

授权与收回

授权:定义存取权限

grant   [select[列] | update[列] | insert[列] ] on table 表 to [用户|public] [with grant option]

revoke [同]  on table 表 from [用户|public]  [cascade]

把查询Student表权限授给用户U1

grant select 
on table Student
to U1;

把对Studnet和Course表的全部权限授予给用户U2和U3

grant all priviliges
on table Student,Course
to U2,U3;

把对表SC的查询权限授予所有用户

grant select
on table SC
to public;

把查询Student表和修改学生学号的权限授给用户U4

grant update(Sno),select
on table Student
to U4;

把对表SC的insert权限授予用户U5,并允许他再将次权限授予其他用户

grant insert
on table sc
to U5
with grant option;

指定with grant option的用户可以把相应权限授予其他用户,但不允许循环授予。

【数据库系统】数据库安全性控制_存取控制

收回用户U4修改学生学号的权限

revoke update(Sno)
on table Student
from U4;

收回所欲用户对表SC的查询权限

revoke select
on table sc
from public;

收回用户U5对表SC的insert权限

revoke insert on table sc
from U5 cascade;

用户U5的insert权限收回的同时,级联(cascade)收回了U6和U7的insert权限,否则系统将拒绝执行该命令。

【数据库系统】数据库安全性控制_数据库_02

create view Notpass
as
select student.sno,sname,cname,grade
from student,sc,course
where student.

三表连接。

create bk_view 
as
select
Student.Sno,Sname,count(*)
from Student,SC
where student.sno=score.sno and (Grade<60 or Grade is null)
group by SC.Sno;

缺考grade是null。

当列属性唯一时,前面不需要加列名。 

(本题是期末考试原题)

grant select,insert
on table sc
to a1,a2
with grant option;
grant select
on table student
to public;
revoke insert on table sc
from a1 cascade;