复习用,别看了
最外层的安全保护措施,用户登录的时候
// 下面是王珊老师书上的代码,在SQL Server可能运行不了
grant select
on table student
to u1
// 授予所有权限
grant all priviliges
on table student, course
to u2,u3
// 授权给所有人
grant select
on table sc
to public
// 修改某列的权限
grant update(sno), select
on table student
to
u4
// 允许传递权限
grant insert
on table sc
with grant option
revoke update(Sno)
on table student
from u4
// 收回所有
revoke select
on table sc
from public
// 级联收回,只收回u5为祖先的insert权限
revoke insert
on table sc
from u5 cascade
create role r1
grant select, update, insert
on table student
to r1
// 将角色设置给用户
grant t1
to u1,u2,u3
// 收回
revoke r1
from u1
// 收回权限
revoke insert
on table student
from r1
主体
的敏感度标记称为许可证级别
(Clearance Level)
客体
的敏感度标记称为密级
(Classification Level)
解释:如果违反(2),高级别用户可以先把数据读出来,然后降低它的密级,使得密级从高流向低,造成数据的泄露。
视图可以把保密的数据隐藏起来,提供一定程度的安全保护。
和对表权限的授予一样