第四章安全性

一、数据安全性控制

1.关系数据库系统中的存取权限

在这里插入图片描述

2.授权:授予与收回

①GRANT(授予权限)

GRANT<权限>[<权限>]
ON<对象类型><对象名>[<对象类型><对象名>]
TO<用户>[<用户>]
[WITH GRANT OPTION];

[WITH GRANT OPTION] 获得某种权限的用户还可以把这种权限授予其他用户

因为要授权很多用户权限所以我们先创建一些用户,但是一个登陆名只对应一个用户所以要多创建几个登录名

如果用一个登录名创建的话会报错
在这里插入图片描述

create login U_1 with password='123456';--创建登录名
create user U1 for login U_1; --创建用户名
create login U_2 with password='123456';
create user U2 for login U_2; 
create login u_3 with password='123456';
create user U3 for login U_3; 
create login U_4 with password='123456';
create user U4 for login U_4; 
create login U_5 with password='123456';
create user U5 for login U_5; 
create login U_6 with password='123456';
create user U6 for login U_6; 
create login U_7 with password='123456';
create user U7 for login U_7; 

[例4.1] 把查询Student表权限授给用户U1

GRANT SELECT
ON Student  --ON TABLE Student会报错应该是SQL和T-SQL的差别
TO U1

在这里插入图片描述

[例4.2] 把对Student表和Course表的全部权限授予用户U2和U3

--标准SQL
GRANT ALL PRIVILEGES
ON TABLE Student,Course
TO U2,U3;

--T-SQL 要分开授权
 GRANT ALL PRIVILEGES
 ON  Student
 TO U2,U3;
 GRANT ALL PRIVILEGES
 ON  Course
 TO U2,U3;

在这里插入图片描述

[例4.3] 把对表SC的查询权限授予所有用户 (有问题没显示)

GRANT SELECT
ON SC
TO PUBLIC

[例4.4] 把查询Student表和修改学生学号的权限授给用户U4(指出相应属性列名)

GRANT UPDATE(Sno),SELECT
ON Student
TO U4

在这里插入图片描述

[例4.5] 把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户

GRANT INSERT
ON SC
TO U5
WITH GRANT OPTION

在这里插入图片描述

②REVOKE(收回权限)

[例4.8] 把用户U4修改学生学号的权限收回 (from)

REVOKE UPDATE(Sno)
ON Student
FROM U4

在这里插入图片描述

[例4.9] 收回所有用户对表SC的查询权限

REVOKE SELECT
ON SC
FROM PUBLIC

[例4.10] 把用户U5对SC表的INSERT权限收回

REVOKE INSERT
ON SC
FROM U5

会收回失败,因为他可以再将此权限授予其他用户(需要使用CASCADE)

REVOKE INSERT
ON SC
FROM U5 CASCADE

二,数据库角色

角色(ROLE):
被命名的一组与数据库操作相关的权限
优点:简化角色是权限的集合。可以为一组具有相同权限的用户创建一个角色。

1.角色的创建

CREATE ROLE <角色名>

2.给角色授权

 GRANT  <权限>[,<权限>]ON <对象类型>对象名  
 TO <角色>[,<角色>]

3. 将一个角色授予其他的用户或用户


GRANT  <角色1>[,<角色2>]TO  <角色3>[,<用户1>][WITH ADMIN OPTION]

4.角色权限的收回


REVOKE <权限>[,<权限>]ON <对象类型> <对象名>
 
FROM <角色>[,<角色>]

[例4.11] 通过角色来实现将一组权限授予一个用户。

CREATE ROLE R1
GRANT SELECT,UPDATE,INSERT
ON Student
TO R1

[例4.12] 角色的权限修改

GRANT DELETE
ON Student
TO R1

[例4.13] 角色的权限修改

REVOKE SELECT
ON Student
FROM R1

三,审计

强制存取控制

1.在强制存取控制中,数据库管理系统所管理的全部实体被分为主体和客体两大类

(1)主体是系统中的活动实体
数据库管理系统所管理的实际用户
(2)客体是系统中的被动实体
文件、基本表、索引、视图

2.对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)
绝密(Top Secret,TS)
机密(Secret,S)
可信(Confidential,C)
公开(Public,P)
TS>=S>=C>=P

3.强制存取控制规则

( 1 )仅当 主体 的许可证级别 大于 或 等于 客体 的密级时,该主体才能 相应的客体
( 2 )仅当 主体 的许可证级别 小于 或 等于 客体 的密级时,该主体才能 相应的客体

四,视图机制

把要保密的数据 对无权存取这些数据的用户 隐藏起来,对数据提供一定程度的安全保护

[例4.14] 建立计算机系学生的视图,把对该视图的SELECT权限授于王平,把该视图上的所有操作权限授于张明

CREATE VIEW CS_Student
AS
SELECT *
FROM Student
WHERE Sdept='CS'
GRANT SELECT
FROM CS_Student
TO 王平
GRANT ALL PRIVILEGES
FROM CS_Student
TO 张明

五,审计

1.审计功能

审计功能把用户对数据库的所有操作自动记录下来放入审计日志

审计员利用审计日志 监控数据库中的各种行为, 找出非法存取数据的人、时间和内容。

2.AUDIT语句和NOAUDIT语句

AUDIT语句:设置审计功能
NOAUDIT语句:取消审计功能

[例4.15] 对修改SC表结构或修改SC表数据的操作进行审计

AUDIT ALTER,UPDATE
ON SC

[例4.16] 取消对SC表的一切审计

NOAUDIT ALTER,UPDATE
ON SC

这几条语句是SQL SERVER无法用的。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值