《数据库的安全性实验(上)课件》由会员分享,可在线阅读,更多相关《数据库的安全性实验(上)课件(38页珍藏版)》请在金锄头文库上搜索。
1、An Introduction to Database System,数据库系统概论 An Introduction to Database System 第四章 Oracle用户权限与安全,An Introduction to Database System,目录,用户与模式 Oracle中的模式定义 用户权限 系统权限 部分系统权限表 验证系统权限 部分对象权限表 如何访问其他模式的对象 验证对象权限 权限传播 权限传播与权限撤销 作业,An Introduction to Database System,用户与模式,可以把Database看作是一个大仓库,仓库分了很多很多的房间,Sche
2、ma就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的床,Table(床)就被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归了。然后床上可以放置很多物品,就好比Table上可以放置很多列和行一样,数据库中存储数据的基本单元是Table,现实中每个仓库放置物品的基本单位就是床, User就是每个Schema的主人(所以Schema包含的是Object,而不是User)。,An Introduction to Database System,Oracle中的模式定义,Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过
3、创建一个用户的方法解决 。 在创建一个用户的同时,为这个用户创建一个与用户名同名的schema并作为该用户的缺省schema。 在同一个模式中不能存在同名对象,但是不同模式中的对象名称可以相同,An Introduction to Database System,用户权限,系统权限 执行特定类型SQL语句的权利。它用于控制用户可以执行一个或一组数据库操作。 对象权限 在对象级控制数据库的存取和使用的机制,即访问其他用户模式对象的权利。,An Introduction to Database System,系统权限,用sys as sysdba登录进去。 创建用户sc。 create user
4、sc identified by 123456; 给用户sc赋予以下权限。 grant create session to sc; grant unlimited tablespace to sc; grant create table to sc;,An Introduction to Database System,部分系统权限表,An Introduction to Database System,验证系统权限(步骤),用sys as sysdba登录进去。 创建用户u1。,An Introduction to Database System,验证系统权限(步骤),用u1登录进去。 发现
5、不能登录进去,提示用户u1没有create session权限。 没有create session系统权限,新创建的用户无法连接数据库。,An Introduction to Database System,验证系统权限(步骤),用sys as sysdba登录进去。 赋予create session系统权限给用户u1。,An Introduction to Database System,验证系统权限(步骤),再次用u1登录,发现这次能登录数据库。 试图创建一张表,但发现不能创建表,提示权限不足。,An Introduction to Database System,验证系统权限(步骤),用
6、sys as sysdba登录进去。 赋予create table系统权限给用户u1。,An Introduction to Database System,验证系统权限(步骤),再次用u1登录,发现这次能登录数据库。 试图创建一张表,但发现不能创建表,提示对表空间user无权限。,An Introduction to Database System,验证系统权限(步骤7),用sys as sysdba登录进去。 赋予unlimited tablespace系统权限给用户u1,An Introduction to Database System,验证系统权限(步骤8),再次用u1登录,发现这次
7、能登录数据库。 试图创建一张表,发现能创建表. 试图创建一个视图,发现不能创建视图。提示权限不足。,An Introduction to Database System,验证系统权限(步骤9),用sys as sysdba登录进去。 赋予create view系统权限给用户u1,An Introduction to Database System,验证系统权限(步骤10),再次用u1登录,发现这次能登录数据库。 试图创建一张表,发现能创建表. 试图创建一个视图,发现能创建视图。 试图在SC模式中创建一个视图,发现不能创建,提示权限不足。,An Introduction to Database
8、System,验证系统权限(步骤11),用sys as sysdba登录进去。 赋予create any view系统权限给用户u1,An Introduction to Database System,验证系统权限(步骤12),再次用u1登录,发现这次能登录数据库。 试图创建一张表,发现能创建表. 试图创建一个视图,发现能创建视图。 试图在SC模式中创建一个视图,发现能创建。,An Introduction to Database System,验证系统权限(步骤13),用sys as sysdba登录进去。 从用户u1收回create any view系统权限。,An Introducti
9、on to Database System,验证系统权限(步骤14),再次用u1登录,发现这次能登录数据库。 试图创建一张表,发现能创建表. 试图创建一个视图,发现能创建视图。 试图在SC模式中创建一个视图,发现不能创建,提示权限不足。,An Introduction to Database System,验证系统权限(小结),同学,懂了吗? 你是否已经了解了 什么是系统权限? 怎么赋予系统权限? 怎么收回系统权限? 如果你还不能了解,请百度。,An Introduction to Database System,部分对象权限表,根据不同的对象,Oracle设置了不同类型的对象权限。部分对象权
10、限及对象之间的对应关系如下: 其中表示某种对象所具有的对象权限,An Introduction to Database System,如何访问其他模式的对象,用户可以直接访问其他模式对象,但如果要访问其他模式对象,则必须具有对象权限。 当用户要访问其他模式对象时,必须附加模式名作为前缀。,An Introduction to Database System,验证对象权限(步骤),用用户u1登录 试图查询SC模式下的学生表,发现不能查询,报表或视图不存在错误。,An Introduction to Database System,验证对象权限(步骤),用system登录进去。 赋予用户u1查询S
11、C模式下的学生表的权限。,An Introduction to Database System,验证对象权限(步骤3),用用户u1登录 试图查询SC模式下的学生表,发现能查询。 试图往SC模式下的学生表里插入数据,发现不能,报权限不足错误。,An Introduction to Database System,验证对象权限(步骤4),用 system 登录进去。 赋予用户u1往SC模式下的学生表插入数据的权限。,An Introduction to Database System,验证对象权限(步骤5),用用户u1登录 试图往SC模式下的学生表里插入数据,发现能插入。 试图修改,删除SC模式下
12、的学生表里的数据,但发现不能修改,删除,报权限不足错误。,An Introduction to Database System,验证对象权限(步骤6),用 system 登录进去。 赋予用户u1修改,删除SC模式下的学生表数据的权限。,An Introduction to Database System,验证对象权限(步骤7),用用户u1登录 试图修改,删除SC模式下的学生表里的数据,发现能修改,删除。,An Introduction to Database System,验证对象权限(步骤8),用 system 登录进去。 收回用户u1修改,删除SC模式下的学生表数据的权限。,An Intr
13、oduction to Database System,验证对象权限(步骤9),用用户u1登录 试图修改,删除SC模式下的学生表里的数据,发现不能修改,删除,报权限不足错误。,An Introduction to Database System,验证对象权限(小结),同学,懂了吗? 你是否已经了解了 什么是对象权限? 怎么赋予对象权限? 怎么收回对象权限? 如果你还不能了解,请百度。,An Introduction to Database System,权限传播,with grant option 只能在赋予对象权限(object privilege)时使用。 如果指定了with grant
14、option子句,则获得某种权限的用户还可以把这种权限再授予其他的用户。 如果没有指定with grant option子句,则获得某种权限的用户只能使用该权限,不能传播该权限。 with admin option 只能在赋予系统权限(system privilege)时使用。 如果指定了with admin option子句,则获得某种权限的用户还可以把这种权限再授予其他的用户。 如果没有指定with admin option子句,则获得某种权限的用户只能使用该权限,不能传播该权限。,An Introduction to Database System,权限传播与权限撤销,撤消带有admin
15、 option 的system privileges 时,连带的权限将保留例如:1. DBA 给了CREATE TABLE 系统权限给JEFF WITH ADMIN OPTION2. JEFF CREATES A TABLE3. JEFF grants the CREATE TABLE 系统权限给EMI4. EMI CREATES A table5. DBA 撤消CREATE TABLE 系统权限从JEFF 结果:JEFFS TABLE 依然存在,但不能创建新的TABLE 了EMIS TABLE 依然存在,他还保留着CREATE TABLE 系统权限。 撤消带有grant option 的ob
16、ject privileges 时,连带的权限也将撤消例如:1. JEFF 给了SELECT object privileges 在EMP 上 WITH ADMIN OPTION2. JEFF 给了SELECT 权限在EMP 上 TO EMI3. 后来,撤消JEFF的SELECT 权限结果:EMI 的权限也被撤消了,An Introduction to Database System,作业,请验证with grant option功能 请验证with admin option功能 请验证with grant option和with admin option的 区别,An Introduction to Database System,下课了。,休息一会儿。,认 真,