6、
(1)
--标准SQL
grant all privileges
on table 学生,班级
to u1
--T-sql
grant all
on 学生
to u1
with grant option
grant all
on 班级
to u1
with grant option
(2)
grant select update (住址)
on table 班级
to public
--标准SQL
--T-sql
grant select update (住址)
on 班级
to public
(3)
grant select
on table 班级
to public
--标准SQL
grant select
on 班级
to public
--T_sql
(4)
grant select update
on table 学生
to r1
--标准sql
--T-sql
grant select update
on 学生
to r1
(5)
grant r1
to u1
with admin option
--T-sql
alter role r1
add member u1;
7
(1)
grant select
on table 职工,部门
to 王平
--
grant select
on 职工
to 王平
grant select
on 部门
to 王平
(2)
grant delect,update
on table 职工,部门
to 李勇
------
grant delete ,update
on 职工
to 李勇
grant delete ,update
on 部门
to 李勇
(3)这个题目参考了同学的内容在后面会给出链接
grant select
on table 职工
when user()=姓名--不知道为什么看到when 这个关键字不是那么惊讶,。可能是
--where 用多了
to public
--T-sql不再赘述
(4)
grant select ,update(工资)
on table 职工
to 刘星
--自己可以改工资,还有这操作,t_Sql 不再赘述
(5)
grant alter
on 职工,部门
to 张新
-----
grant alter
on 职工
to 张新
grant alter
on 部门
to 张新
(6)
grant all privileges
on table 职工,部门
to 周平
with grant option
---T-sql不再赘述
privileges
(7)
根据这个题目不能直接授权基本表,建立了视图
create view money(num,max_money,min_money,avg_money)
as
select 部门号,max(工资),min(工资),avg(工资)
from 职工
group by 部门号
grant select
on money
to 杨兰
--标准不再赘述
8
(1)
revoke select
on table 职工,部门
from 王平
(2)
revoke insert ,delete
on table 职工,部门
from 李勇
(3)
revoke select
on table 职工
when user()=名称
to public
(4)
revoke select ,update(工资)
on table 职工
from 刘星
(5)
revoke alter
on table 职工,部门
from 张新
(6)
revoke all privileges
on 职工
from 周平 cascade
--这个在t -sql 中也要有,否则会报错
(7)
revoke select
on view money
from 杨兰
上面的代码中如果有错误的,希望大家不吝赐教
安全性总结
引言
一个好的数据库就一定要考虑安全性,举个例子如果一个用户在一分钟登陆了几千次账户,那个用户很可能是有问题的。为了更好的保护数据就应该考虑安全性。
数据库安全性
(1)数据库安全性控制
<1> 用户身份检验
<2>存取控制
<3>自主存取方法
<4>授权grant /revoke
<5>强制存取控制方法 主体的许可级别大于客体的密级可以读
仅当主体的许可级别小于等于客体的密级可以写
(2) 视图
从上面的一个例子中可以看到视图是可以保护数据的。
(3)审计
可以对用户的操作审计,发现不规范的用户审计
(4)数据加密
可以使用一些算法将数据加密,即使被select 也不用担心
(5)其他安全性保护
最后推荐一篇博客,相比于这篇我的这一篇实在是相形见绌
https://blog.csdn.net/fu_gaga/article/details/105214694(7题的第三个也是参考的这篇)