第4章-数据库安全性

实验笔记:

数据库的安全性是指保护数据库以防止不合法使用造成的数据泄露、更改或者破坏。
数据安全性控制包括
1.用户身份鉴别 Authentication -你是谁?
每个用户标识由用户名和用户标识号(UID)两部分组成。MYSQL 用户还包括访问位置
1)创建用户
例如 Create user ‘user1’@‘localhost’ identified by ‘123’; // 在本地localhost,创建用户名user1, 密码为123
位置:指定只能本机访问localhost
同理 Create user ‘user2’@‘localhost’ identified by ‘123’;
2)查看用户信息
用户的信息储存在mysql库中的user表中
mysql>desc mysql.user \G;
例如查看服务器(host)、用户名及密码信息
mysql> select host, user, password from mysql.user;
查看用户user1 的信息
mysql> select * from mysql.user where user=‘user1’\G;

3)删除用户

方法1: drop user user1@localhost;
方法2: delete from mysql.user where user=‘user1’;

  1. 授权与存取控制
    新创建的用户,没有通过授权是没有任何权限的。
    授权Authorization -你允许做什么?
    存取控制 Access Control -什么数据允许你查看或者改动
    (1)定义用户权限,并将用户权限登记到数据字典中。
    (2)合法权限检查
    当用户进行存取数据库的操作请求时,其信息包括操作类型、操作对象和操作用户。数据库管理系统查找数据字典,进行安全检查。
    3.自主存取控制方法
    SQL标准支持自主存取控制,通过授权grant 和回收revoke来实现。

(1)授权Grant 语法
Grant <权限>[,<权限>]…
on <对象类型><对象名>
to <用户>[,<用户>]
[with grant option]

例如: grant select on table orders to user1,user2; 表示授权用户user1,user2在当前数据库的表orders中查询的权限
mysql中 table 可以省略,但是只能对一张表进行授权
注意:with grant option 表示获得某个权限的用户可以将本身的权限再授予其他用户。

权限类型

用户 create user
数据表 create |alter | drop table
视图 create view
存储过程 create routine | alter routine | execute
索引 create index
对于基本表及视图 select, insert, update,delete,all privileges
对于属性列 select, insert, update

数据库对象层次

1)所有数据库的所有表: .
例如在数据库中创建一个类似root 权限的用户名为 jyudb, 密码为: 123456
Create user ‘jyudb’@‘localhost’ identified by ‘123456’;
GRANT ALL PRIVILEGES ON . TO ‘jyudb’@‘localhost’ WITH GRANT OPTION;
表示给用户jyudb授予在所有数据库的所有表(.)上进行操作的所有权限(ALL PRIVILEGES),并且可以本身的权限再授予其他用户(WITH GRANT OPTION)。
2)某个数据库(trade)所有表 trade.*
3)某个数据库某个表trade.products
4)某个表的某些列 select | grade (列1,列2…) on trade.products
5)某个存储过程、函数

(2)回收授权 revoke
Revoke <权限>[,<权限>]…
on <对象类型><对象名>
from <用户>[,<用户>]

注意 mysql 不支持cascade(级联)或者 restrict 选项。即不支持级联回收授权,即通过 with grant option 获得某个权限的用户A可以将本身的权限再授予其他用户B时,当A用户的权限被回收后,B用户的授权不会被级联回收。

—————————————————————————————————————————————————————————————
1、数据库有什么特点?
特点之一是,是由数据库管理系统提供统一的数据保护功能,来保证数据的安全可靠和正确有效。

2、数据库的数据保护主要是包括什么?
数据的安全性和完整性。

3、数据库安全性是指什么?
保护数据库,防止不合法使用所造成的的数据泄露、更改或破坏。

4、对数据库安全性产生威胁的因素主要有哪几个方面?

1.非授权用户对数据库的恶意存取和破坏
数据库管理系统提供的安全措施主要包括用户身份鉴别、存取控制和视图等技术。

2.数据库中重要或敏感的数据被泄露
数据库管理系统提供的主要技术有强制存取控制、数据加密存储和加密传输等。
在安全性要求较高的部门提供审计功能,通过分析审计日志,可以对潜在的威协提前采取措施加以防范,对非授权用户的入侵行为及信息破坏情况能够进行跟踪,防止对数据库安全责任的否认。

3.安全环境的脆弱性
数据库的安全性与计算机系统的安全性,包括计算机硬件、操作系统、网络系统等的安全性是紧密联系的。

在这里插入图片描述
在这里插入图片描述
5、数据库管理系统提供的最外层安全保护措施是?
用户身份鉴别。

6、每个用户在系统中都有一个什么?由什么组成?
用户标识。
用户名user name。用户标识号。UID
7、UID在系统中什么地位?
在系统的整个生命周期内是唯一的。

8、常用的用户身份鉴别方式有几种?
1.静态口令鉴别。
2.动态口令鉴别。
3.生物特征兼备。
4.智能卡鉴别

9、什么是静态口令?动态?生物?智能卡?
就是一段普通的口令。安全性低,容易被破解。
短信、令牌。
指纹、虹膜。
登录数据库管理系统时用户将智能卡插入专用的读卡器进行身份验证。

10、什么是存取控制机制。由哪两个部分组成?
只授权给有资格访问的用户,访问数据库的权限。这就是一个机制。
定义用户权限,合法权限检查。

11、什么是权限?
用户对某一操作对象的操作权利。

12、这些定义会经过怎么样的过程?
定义会被编译到数据字典中,然后被称为安全规则或授权规则。

13、什么是数据字典?
对系统中使用的所有数据元素的定义的集合。
用户可以访问的记录数据库和应用程序元数据的目录。

14、合法权限检查会如何使用?
用户发出存取数据库的操作请求,数据库管理系统查找数据字典,按照安全规则检查,
操作请求超出了定义的权限,就拒绝执行。

15、什么是数据库管理系统?
比如mysql。是软件。

16、定义用户权限和合法权限检查机制一起组成了?
数据库管理系统的 存取控制子系统。

17、
在这里插入图片描述
18、
C2级的数据库管理系统支持自主存取控制( Discretionary Access Control, DAC),
B1级的数据库管理系统支持强制存取控制(MandatoryAccessControl,MAC)。

19、什么是自主存取控制?
不同数据库对象有不同的权限,
不同用户对同一对象,也有不同的权限。
用户的权限还可以转移。

20、什么是强制存取控制?
每个数据库对象有一个密级,
每个用户有一个级别的许可证,
许可证级别到了密级,才能访问对象。

21、自动存取控制一般通过什么语句实现?
grant语句和revoke语句。

22、用户权限有什么组成?
数据库对象和操作类型。

23、定义一个用户的存取权限就是要?
定义这个用户可以在那些数据库对象上进行哪些类型的操作。

24、授权是什么意思?
定义存取权限。

25、
在非关系系统中,用户只能对数据进行操作,存取控制的数据库对象也仅限于数据本身。
在关系数据库系统中,存取控制的对象不仅有数据本身(基本表中的数据、属性列上的数据),还有数据库模式(包括数据库、基本表、视图和索引的创建等)

26、对象可以是?
数据库模式、数据。
在这里插入图片描述
27、
对列的UPDATE权限指对于表中存在的某一列的值可以进行修改。
当然,有了这个权限之后,在修改的过程中还要遵守表在创建时定义的主码及其他约束。

列上的INSERT权限指用户可以插入一个元组。对于插入的元组,授权用户可以插入指定
的值,其他列或者为空,或者为默认值。

在给用户授予列INSERT权限时,一定要包含主
码的INSERT权限,否则用户的插入动作会因为主码为空而被拒绝。

28、授予权限,收回权限什么语句?
grant,revoke

29、grant语句一般什么格式?
在这里插入图片描述
30、什么意思?
将制定的操作对象的指定的操作权限,授予给指定的用户。

31、发出grant语句的可以是谁?
有权限的用户、数据库管理员、数据库创建者。

32、接受权限的可以是谁?
一个或多个用户、public全体用户。

33、with grant option 有什么用?
获得某种权限的用户,可以把权限授予其他用户。
如果没有,则只能使用该权限,不能授予。

34、权限可以循环授予吗?
不能
在这里插入图片描述
35、把查询Student表的权限授给用户U1
grant select
on table Student
to U1;

36、把对Student 表和Course表的全部操作权限授予用户U2和U3。
grant all privileges
on table Student,Course
to U2,U3;//所有用户public

37、把查询Student表和修改学生学号的权限授给用户U4。
grant update(Sno),selece
on table Student
to U4;

38、把对表SC的INSERT权限授予U5用户,并允许将此权限再授予其他用户。
grant insert
on table SC
to U5
with grant option;

39、执行此SQL语句后,U5不仅拥有了对表sC的INSERT权限,还可以传播此权限,
即由U5用户发上述GRANT命令给其他用户。例如US可以将此权限授予U6 (例4.6)。
grant insert
on table SC
to U6
with grant option;//不写的话,U6就不能再传播给U7了。写了就还可以传播。

40、谁可以收回权限?
数据库管理者、授权者。在这里插入图片描述

41、把用户U4修改学生学号的权限收回。
revoke update(Sno)
on table Student
from u4;
from public;//所有用户
from U5 cascade;
在这里插入图片描述
42、用户对什么拥有全部操作权限?
基本表和试图。
并且可以用GRANT语句把其中某些权限授予其他用户。被授权的用户如果有“继续授权”的许可,还可以把获得的权限再授予其他用户。

43、怎么样的存取控制是自主存取控制?
用户可以“自主”地决定将数据的存取权限授予何人、
决定是否也将“授权的权限授予别人。
这样的存取控制。

44、对创建数据库模式一类的数据库对象的授权如何实现 ?
数据库管理员在创建用户时实现。

45、
在这里插入图片描述

46、新创建的数据用户有几种权限?
在这里插入图片描述

47、如果没有指定,则默认拥有?
connect

48、connect权限有什么用?
就是只能连接(登录)数据库。
不能创建新用户,
不能创建模式,
不能创建基本表。

49、resource权限的用户有什么用?
能创建基本表和视图,成为所创建对象的属主,
但不能创建模式,不能创建新的用户。
数据库对象的属主可以使用GRANT语句把该对象上的存取权限授予其他用户。

50、DBA权限的用户有什么用?
可以创建新的用户、创建模式、创建基本表和视图等;
DBA拥有对所有数据库对象的存取权限,还可以把这些权限授予一般用户。

在这里插入图片描述
51、什么是数据库角色?有什么用?
被命名的一组与数据库操作相关的权限。
角色是权限的集合。

可以为一组具有相同权限的用户创建一个角色,使用角色来管理数据库权限可以简化授权的过程。

52、角色的创建
create role 角色名。
刚创建时是空的,所以要授权给角色。

53、给角色授权
grant 权限
on 对象类型 对象名
to 角色,角色;

54、将一个角色授予其他的角色或用户
grant 角色1,角色2
to 角色3,用户1
with admin option;
如果指定了WITH ADMIN OPTION子句,
则获得某种权限的角色或用户还可以把这种权限再授予其他的角色。

55、角色权限的收回
revoke 权限
on 对象类型 对象名
from 角色1;

56、练习:
创建角色:
create role R1;
②然后使用GRANT语句,使角色R1拥有Student表的SELECT、UPDATE、INSERT
权限。
grant SELECT,UPDATE,INSERT
on table Student
to R1;
③将这个角色授予王平、张明、赵玲,使他们具有角色R1所包含的全部权限。
grant R1
TO 王平,张明,赵玲;
④当然,也可以一次性地通过R1来收回王平的这三个权限。
REVOKE R1
FROM 王平;

角色的权限修改。
GRANT DELETE
ON TABLE Student
TO R1;
使角色R1在原来的基础上增加了Student表的DELETE权限。

[例4.13]
REVOKE SELECT
ON TABLE Student
FROM R1;
使R1减少了SELECT权限。

57、自主存取控制有风险?
有,我将权限给了A,说不定A把权限随意给了陌生人。

58、在强制存取控制中,数据库管理系统所管理的全部实体被分为?具体是?
主体和客体两大类。

主体是系统中的活动实体,既包括数据库管理系统所管理的实际用户,也包括代表用户的各进程。
客体是系统中的被动实体,是受主体操纵的,包括文件、基本表、索引、视图等。

对于主体和客体,数据库管理系统为它们每个实例(值)指派一个敏感度标记(label)。

59、敏感度标(label)记分为?
TS、S、C、P

60、主、客体敏感度标记又被称为?
许可证级别。
密级。

61、强制存取控制机制就是通过什么?
通过对比主体的敏感度标记和客体的敏感度标记,最终确定主体是否能够存取客体。

62、当某一用户(或某一主体)以标记label注册入系统时,系统要求他对任何客体的存取
必须遵循规则??
(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体。
(2)仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体。

63、规则2的意义在于?
按照规则(2),用户可以为
写入的数据对象赋予高于自己的许可证级别的密级。这样一旦 数据被写入,该用户自己也
不能再读该数据对象了。如果违反了规则(2), 就有可能把数据的密级从高流向低,造成
数据的泄漏。例如,某个TS密级的主体把一一个 密级为TS的数据恶意地降低为P,然后把
它写回。这样原来是TS密级的数据大家都可以读到了,造成了TS密级数据的泄漏。

64、
在这里插入图片描述
系统先自主存取控制检查,对通过自主存取控制检查的允许存取的数据库对象
再由系统自动进行强制存取控制检查,只有通过强制存取控制检查的数据库对象方可存取。

64、视图有什么用?
通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定程度的安全保护。

65、[例4.14]
建立计算机系学生的视图,把对该视图的SELECT权限授予王平,把该视
图上的所有操作权限授予张明。
在这里插入图片描述
66、C2以上安全级别需要 审计。

67、审计功能是?
把用户对数据库的所有操作自动记录下来放入审计日志(auditlog)中。审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。还可以通过对审计日志分析,对潜

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值