当前课程知识点:数据库概论 >  第四章 数据库完整性、视图与安全性 >  4.6 安全性 >  安全性

返回《数据库概论》慕课在线视频课程列表

安全性在线视频

安全性

下一节:Video

返回《数据库概论》慕课在线视频列表

安全性课程教案、知识点、字幕

同学们好

我是来自云南大学软件学院的包崇明

同学们好

同学们好

我是来自云南大学软件学院的包崇明

我是来自云南大学软件学院的包崇明

我是来自云南大学软件学院的包崇明

我是来自云南大学软件学院的包崇明

下面为大家介绍数据库安全性

下面为大家介绍数据库安全性

下面为大家介绍数据库安全性

下面为大家介绍数据库安全性

下面为大家介绍数据库安全性

下面为大家介绍数据库安全性

数据的集中控制原则是数据库的设计基础

数据的集中控制原则是数据库的设计基础

数据的集中控制原则是数据库的设计基础

数据的集中控制原则是数据库的设计基础

数据的集中控制原则是数据库的设计基础

数据的集中控制原则是数据库的设计基础

一个数据库往往需要服务多个用户

一个数据库往往需要服务多个用户

也就是说

也就是说

也就是说

也就是说

对于数据库中的一张表

对于数据库中的一张表

有多个用户可能需要访问不同列中的数据

有多个用户可能需要访问不同列中的数据

有多个用户可能需要访问不同列中的数据

有多个用户可能需要访问不同列中的数据

这些约束在执行SQL语句的更新过程中

由于管理的需要

由于管理的需要

由于管理的需要

一些用户只能看到某些列上的数据

一些用户只能看到某些列上的数据

一些用户只能看到某些列上的数据

一些用户只能看到某些列上的数据

而不能看到其他列上的数据

而不能看到其他列上的数据

而不能看到其他列上的数据

一些用户能够更新某些列的数据

一些用户能够更新某些列的数据

一些用户能够更新某些列的数据

而有些用户只能查看数据

而有些用户只能查看数据

而有些用户只能查看数据

而有些用户只能查看数据

而有些用户只能查看数据

不能更改数据

不能更改数据

不能更改数据

我们可使用数据库系统提供的

我们可使用数据库系统提供的

我们可使用数据库系统提供的

安全机制来实现这些安全约束

安全机制来实现这些安全约束

安全机制来实现这些安全约束

触发器能够通过编程来生成动态规则

触发器能够通过编程来生成动态规则

触发器能够通过编程来生成动态规则

能够实现比非过程性约束更复杂的功能

能够实现比非过程性约束更复杂的功能

具体来说

表或者视图的所有者

表或者视图的所有者

表或者视图的所有者

能够授予一个或一类用户

能够授予一个或一类用户

对其拥有的表或者视图

对其拥有的表或者视图

对其拥有的表或者视图

对其拥有的表或者视图

进行访问的各种权限

进行访问的各种权限

进行访问的各种权限

进行访问的各种权限

也能够撤销以前授予他们访问权限

也能够撤销以前授予他们访问权限

也能够撤销以前授予他们访问权限

也能够撤销以前授予他们访问权限

也能够撤销以前授予他们访问权限

也能够撤销以前授予他们访问权限

并为这些事件定义相应的动作

对表或视图访问进行授权

对表或视图访问进行授权

对表或视图访问进行授权

对表或视图访问进行授权

需要使用Grant语句

需要使用Grant语句

需要使用Grant语句

需要使用Grant语句

数据库管理系统触发和事件相对应的动作

表或视图的所有者拥有对表的所有权限

表或视图的所有者拥有对表的所有权限

表或视图的所有者拥有对表的所有权限

表或视图的所有者拥有对表的所有权限

表或视图的所有者拥有对表的所有权限

他们使用Grant授权语句

他们使用Grant授权语句

授予一个或一类用户访问表的各种权限

授予一个或一类用户访问表的各种权限

授予一个或一类用户访问表的各种权限

授予一个或一类用户访问表的各种权限

授予一个或一类用户访问表的各种权限

授予一个或一类用户访问表的各种权限

我们来看一下grant语句的语法

我们来看一下grant语句的语法

提供的触发器定义语句有细微的差别

提供的触发器定义语句有细微的差别

关键字Grant后面列出可授予的权限

关键字Grant后面列出可授予的权限

关键字Grant后面列出可授予的权限

关键字Grant后面列出可授予的权限

关键字Grant后面列出可授予的权限

关键字Grant后面列出可授予的权限

一次可授予多项权限

一次可授予多项权限

一次可授予多项权限

每项权限间用逗号分隔

每项权限间用逗号分隔

每项权限间用逗号分隔

可授权的权限包括

可授权的权限包括

可授权的权限包括

可授权的权限包括

在表上执行SELECT

在表上执行SELECT

在表上执行SELECT

DELETE

INSERT语句的权限

INSERT语句的权限

INSERT语句的权限

在表的某些列上执行UPDATE语句的权限

在表的某些列上执行UPDATE语句的权限

在表的某些列上执行UPDATE语句的权限

在表的某些列上执行UPDATE语句的权限

在表的某些列上执行UPDATE语句的权限

在表的某些列上执行UPDATE语句的权限

其他用户表定义外键时可参照该表权限

其他用户表定义外键时可参照该表权限

其他用户表定义外键时可参照该表权限

其他用户表定义外键时可参照该表权限

其他用户表定义外键时可参照该表权限

其他用户表定义外键时可参照该表权限

其他用户表定义外键时可参照该表权限

其他用户表定义外键时可参照该表权限

其他用户表定义外键时可参照该表权限

接下来我们定义一个事件

关键字ALL PRIVILEGES代表所有的权限

关键字ALL PRIVILEGES代表所有的权限

关键字ALL PRIVILEGES代表所有的权限

关键字ALL PRIVILEGES代表所有的权限

关键字ALL PRIVILEGES代表所有的权限

关键字ALL PRIVILEGES代表所有的权限

在关键字on后面指定

在关键字on后面指定

在关键字on后面指定

在关键字on后面指定

在关键字on后面指定

提供授权访问的表或者视图的名称

提供授权访问的表或者视图的名称

提供授权访问的表或者视图的名称

提供授权访问的表或者视图的名称

提供授权访问的表或者视图的名称

关键字to后面指定授予权限的用户名

关键字to后面指定授予权限的用户名

关键字to后面指定授予权限的用户名

关键字to后面指定授予权限的用户名

关键字to后面指定授予权限的用户名

一次可授予多个用户权限

每个用户间用逗号分隔

每个用户间用逗号分隔

每个用户间用逗号分隔

每个用户间用逗号分隔

每个用户间用逗号分隔

每个用户间用逗号分隔

我们可得到相应事件

关键字Public

关键字Public

代表能够连接这个数据库的所有用户

代表能够连接这个数据库的所有用户

代表能够连接这个数据库的所有用户

可选子句WITH GRANT OPTION

可选子句WITH GRANT OPTION

可选子句WITH GRANT OPTION

允许有对这张表访问权限的用户

允许有对这张表访问权限的用户

允许有对这张表访问权限的用户

允许有对这张表访问权限的用户

授予其他用户同样的权限

授予其他用户同样的权限

授予其他用户同样的权限

授予其他用户同样的权限

授予其他用户同样的权限

授予其他用户同样的权限

授予其他用户同样的权限

授予其他用户同样的权限

需要注意的是

一个用户创建表或者视图后

一个用户创建表或者视图后

一个用户创建表或者视图后

一个用户创建表或者视图后

一个用户创建表或者视图后

一个用户创建表或者视图后

一个用户创建表或者视图后

就是表或者视图的拥有者

就是表或者视图的拥有者

就是表或者视图的拥有者

就是表或者视图的拥有者

自动拥有表的所有权限

自动拥有表的所有权限

并且不能被撤销

并且不能被撤销

并且不能被撤销

由BEGIN ATOMIC关键字开始

下面我们看几个授权例子

下面我们看几个授权例子

下面我们看几个授权例子

END关键字结束

授予用户eoneil对表orders的选取

授予用户eoneil对表orders的选取

授予用户eoneil对表orders的选取

授予用户eoneil对表orders的选取

更新或插入权限

更新或插入权限

更新或插入权限

更新或插入权限

更新或插入权限

更新或插入权限

更新或插入权限

但不授予删除权限

但不授予删除权限

授权语句是

授权语句是

grant select

grant select

update

insert on orders to eoneil

insert on orders to eoneil

insert on orders to eoneil

insert on orders to eoneil

insert on orders to eoneil

insert on orders to eoneil

下面我们看第二个例子

下面我们看第二个例子

授予eoneil在表products上的所有权限

授予eoneil在表products上的所有权限

授予eoneil在表products上的所有权限

grant all privileges

grant all privileges

grant all privileges

on products to eoneil

on products to eoneil

on products to eoneil

on products to eoneil

一行数据在更新前或更新后的值

一行数据在更新前或更新后的值

我们看到在上述grant授权语句中

我们看到在上述grant授权语句中

我们看到在上述grant授权语句中

我们看到在上述grant授权语句中

我们看到在上述grant授权语句中

对于select和insert语句

对于select和insert语句

对于select和insert语句

对于select和insert语句

并没有提供指定列上授权

并没有提供指定列上授权

并没有提供指定列上授权

为了实现select和insert语句

为了实现select和insert语句

指定列上授权需要借助视图

指定列上授权需要借助视图

指定列上授权需要借助视图

指定列上授权需要借助视图

指定列上授权需要借助视图

下面我们看一个例子

可访问更新前或者更新后的

下面的例子

下面的例子

允许用户eoneil在表customers中

允许用户eoneil在表customers中

允许用户eoneil在表customers中

插入或删除任意行

插入或删除任意行

插入或删除任意行

插入或删除任意行

插入或删除任意行

能够更新 cname和 city列

能够更新 cname和 city列

能够更新 cname和 city列

能够更新 cname和 city列

能够更新 cname和 city列

能够更新 cname和 city列

可以选取除discnt外的所有列

可以选取除discnt外的所有列

可以选取除discnt外的所有列

可以选取除discnt外的所有列

但不能查看discnt的数据

但不能查看discnt的数据

但不能查看discnt的数据

显然只使用grant授权语句

显然只使用grant授权语句

显然只使用grant授权语句

无法完成上述安全管理要求

无法完成上述安全管理要求

无法完成上述安全管理要求

前面我们已经用check约束实现了

前面我们已经用check约束实现了

我们可以先创建一个视图custview

我们可以先创建一个视图custview

我们可以先创建一个视图custview

我们可以先创建一个视图custview

我们可以先创建一个视图custview

create view custview as select cid

create view custview as select cid

create view custview as select cid

create view custview as select cid

create view custview as select cid

create view custview as select cid

create view custview as select cid

create view custview as select cid

create view custview as select cid

Cname

city from customers

city from customers

city from customers

city from customers

city from customers

视图custview从表customers中

视图custview从表customers中

视图custview从表customers中

视图custview从表customers中

视图custview从表customers中

选取除discnt列外的其他三列

选取除discnt列外的其他三列

选取除discnt列外的其他三列

选取除discnt列外的其他三列

选取除discnt列外的其他三列

选取除discnt列外的其他三列

显然它是一个可更新视图

显然它是一个可更新视图

显然它是一个可更新视图

显然它是一个可更新视图

现在我们在视图custview上

现在我们在视图custview上

现在我们在视图custview上

现在我们在视图custview上

给用户eoneil授予查看

给用户eoneil授予查看

给用户eoneil授予查看

删除和更新cname、city两列的权限

删除和更新cname、city两列的权限

删除和更新cname、city两列的权限

具体的语句如下

具体的语句如下

grant select

grant select

Delete

Delete

Insert

Insert

Insert

表示给新插入的行数据设定一个相关名x

update(cname, city)

update(cname, city)

on custview to eoneil

on custview to eoneil

on custview to eoneil

on custview to eoneil

现在eoneil

现在eoneil

可以对视图custview执行

可以对视图custview执行

可以对视图custview执行

查询

来表示新插入的行数据

删除

删除

删除

和插入语句

和插入语句

可以在cname

可以在cname

city 两列上进行更新

city 两列上进行更新

city 两列上进行更新

city 两列上进行更新

这些更新操作将转换为对

这些更新操作将转换为对

这些更新操作将转换为对

这些更新操作将转换为对

这些更新操作将转换为对

customers表的更新

customers表的更新

customers表的更新

customers表的更新

discnt>15.0

由于视图中没有discnt列

由于视图中没有discnt列

由于视图中没有discnt列

由于视图中没有discnt列

所以他无法访问discnt列

所以他无法访问discnt列

所以他无法访问discnt列

完成了我们的安全管理需求

完成了我们的安全管理需求

完成了我们的安全管理需求

完成了我们的安全管理需求

完成了我们的安全管理需求

对一个用户授予相应的权限后

对一个用户授予相应的权限后

执行该插入命令的应用程序中

表的拥有者也可以用revoke语句

表的拥有者也可以用revoke语句

表的拥有者也可以用revoke语句

表的拥有者也可以用revoke语句

撤销对他们的访问授权

撤销对他们的访问授权

撤销对他们的访问授权

revoke语法和grant语法相似

revoke语法和grant语法相似

revoke语法和grant语法相似

revoke语法和grant语法相似

提供的非过程性约束以及

只不过REVOKE关键字后面是

只不过REVOKE关键字后面是

只不过REVOKE关键字后面是

create trigger语句提供的

撤销的权限

关键字from后面指的是

关键字from后面指的是

关键字from后面指的是

关键字from后面指的是

将被撤销权限的用户名称

将被撤销权限的用户名称

将被撤销权限的用户名称

将被撤销权限的用户名称

前面说过

表的所有者自动拥有所有权限

表的所有者自动拥有所有权限

表的所有者自动拥有所有权限

它们是不能被撤消的

它们是不能被撤消的

它们是不能被撤消的

它们是不能被撤消的

它们是不能被撤消的

下面看一个例子

下面看一个例子

撤销前面授予用户eoneil

撤销前面授予用户eoneil

撤销前面授予用户eoneil

撤销前面授予用户eoneil

撤销前面授予用户eoneil

对表orders的更新或插入权限

但保留查询权限的语句是

但保留查询权限的语句是

但保留查询权限的语句是

revoke update

revoke update

insert on orders from eoneil

insert on orders from eoneil

insert on orders from eoneil

insert on orders from eoneil

insert on orders from eoneil

我们可以为该字段指定一个缺省值

下面我们简单介绍

我们可以为该字段指定一个缺省值

系统表和数据库模式

系统表和数据库模式

这由关键字Default后面

对于用户定义的表

对于用户定义的表

视图

索引等数据库对象

它们的定义信息

它们的定义信息

存放在系统定义表中

存放在系统定义表中

存放在系统定义表中

存放在系统定义表中

存放在系统定义表中

如需获得数据库对象的定义信息

如需获得数据库对象的定义信息

可通过查询系统定义表得到

可通过查询系统定义表得到

可通过查询系统定义表得到

可通过查询系统定义表得到

我们在定义约束的时候

一般来说

一般来说

数据库模式可理解为

一个数据库可由多个子模式组成

一个数据库可由多个子模式组成

每个子模式

每个子模式

可理解为数据库的一个用户

可理解为数据库的一个用户

包含了该用户创建的数据库对象

包含了该用户创建的数据库对象

主键约束在每张表中只能定义一个

所以对数据库对象的命名

所以对数据库对象的命名

一般应包括创建它的用户名

一般应包括创建它的用户名

下面我们通过一个创建表的例子

来进一步学习如何定义约束

所以对象命名的基本形式是

用户名.对象名

用户名.对象名

用户名.对象名

创建表customers

在这章中

我们介绍了非过程约束

我们介绍了非过程约束

和触发器的定义方法

介绍了视图及授权管理

介绍了视图及授权管理

介绍了视图及授权管理

谢谢大家

我们定义了一个列级约束not null

约束cid的取值不能为空

在city字段上

我们定义了一个缺省值约束

当插入新行时

如果没有指定city的值

系统将用‘New York’填充

在discnt字段上

我们定义了一个check约束

约束名为discnt_max

当插入或者更新操作时

将检查该行的discnt是否小于15

如果不满足

操作失败

最后我们定义了一个表级约束

在cid字段上定义了主键约束

好了同学们我们下节课再见

数据库概论课程列表:

导论

-数据库概述

--Video

-导论--数据库概述

第一章 数据库基础

-1.1 数据库基础

--Video

-第一章 数据库基础--1.1 数据库基础

第二章 关系运算

-2.1 CAP数据库

--CAP数据库

-第二章 关系运算--2.1 CAP数据库

-2.2 自然关系运算1

-- 自然关系运算1

-第二章 关系运算--2.2 自然关系运算1

-2.3 自然关系运算2

--自然关系运算2

-第二章 关系运算--2.3 自然关系运算2

第三章 结构化查询语言SQL

-3.1 SQL概述

-- SQL概述

-3.1 SQL概述--作业

-3.2 数据定义DDL

--数据定义DDL

-3.2 数据定义DDL--作业

-3.3 SQL数据更新DML

--SQL数据更新DML

-3.3 SQL数据更新DML--作业

-3.4 复杂SQL查询操作1

--复杂SQL查询操作1

-第三章 结构化查询语言SQL--3.4 复杂SQL查询操作1

-3.5 复杂SQL查询操作2

--复杂SQL查询操作2

-第三章 结构化查询语言SQL--3.5 复杂SQL查询操作2

第四章 数据库完整性、视图与安全性

-4.1 数据完整性

--4.1 数据完整性

-4.1 数据完整性--作业

-4.2 完整性约束

--完整性约束

-4.2 完整性约束--作业

-4.3 外键约束

--外键约束

-4.3 外键约束--作业

-4.4 触发器

--触发器

-4.4 触发器--作业

-4.5 视图

--视图

-4.5 视图--作业

-4.6 安全性

--安全性

-4.6 安全性--作业

第五章 索引

-5.1 索引

--Video

-5.2 B+树索引

--Video

第六章 规范化理论

-6.1 函数依赖

--Video

-6.2 Armstrong公理

--Video

-6.3 无损分解

--Video

-6.4 范式举例

--Video

-6.5 三种范式

--Video

-6.5 三种范式--作业

第七章 实体关系模型

-7.1-E-R模型概述

--E-R模型概述

-7.2 E-R模型详解

--Video

-7.3 E-R模型的拓展

--Video

-7.4 E-R模型实例分析

--Video

第八章 事务处理

-8.1 事务的ACID性质介绍

--ACID介绍

-8.1 事务的ACID性质介绍--作业

-8.2 事务经历

--事务经历

-8.2 事务经历--作业

-8.3 可串行化调度和前趋图

--可串行化调度和前趋图

-8.3 可串行化调度和前趋图--作业

-8.4 两阶段封锁

--两段锁协议

-8.4 两阶段封锁--作业

-8.5 隔离级别

--隔离级别

-8.5 隔离级别--作业

-8.6 事务恢复

--事务恢复

-8.6 事务恢复--作业

第九章 数据库应用与开发

-9.1 数据库使用介绍

--数据库使用介绍

-9.2 Java访问数据库

--Java访问数据库

-9.2 Java访问数据库--作业

第十章 其他数据库技术概述

-10.1 数据库新技术概述

--Video

安全性笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。