racle 11g数据库的角色管理.docx
- 文档编号:26844395
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:16
- 大小:249.66KB
racle 11g数据库的角色管理.docx
《racle 11g数据库的角色管理.docx》由会员分享,可在线阅读,更多相关《racle 11g数据库的角色管理.docx(16页珍藏版)》请在冰豆网上搜索。
racle11g数据库的角色管理
z贵州大学实验报告
学院:
专业:
班级:
姓名
学号
实验组
实验时间
指导教师
成绩
实验项目名称
racle11g数据库的角色管理
实验目的
1.了解如何在Oracle11g中通过SQLdeveloper或SQL*Plus工作单进行用户角色的管理
2.掌握Oracle11g的角色管理及了解企业管理器的使用方法和技巧。
通过该实验的学习
3.深入了解角色的概念及其在访问控制中的重要作用
4.用实践的方式加深对RBAC模型的理解,为今后对其他数据库的安全管理有很好的借鉴作用,能很快熟悉其他数据库的安全管理方法
实验原理
1.什么是角色?
角色是具有名称的一组系统权限和对象权限的集合。
2.使用角色的目的?
1)简化权限管理
2)提高效率
3.角色授予的对象?
1)某个用户组
2)单个用户
3)其他角色
4.使用角色的优点
1)使用户授权任务变得简单
2)将权限和账号有效、灵活的连接
Oracle之角色管理
1.角色创建
●语法
CREATEROLE角色名称
[NOTIDENTIFIED|IDENTIFIED{BY密码|USING[模式.]包|EXTREMELY|GLOBALLY}
];
注意:
角色的名称不得与数据库已有的任何用户名相同,以免发生冲突。
例如:
创建一个名为testrole的角色,采用密码认证方式:
CREATEROLEtestroleIDENTIFIEDBYaaa
参数说明
●NOTIDENTIFIED:
无需认证即可使用角色。
●IDENTIFIED:
用户必须在获得该角色制定的认证方法后才能获得该角色的使用权。
●BY密码:
通过输入正确的口令密码获得认证。
●USING[模式.]包:
创建的是应用程序角色,这种角色是指应用程序通过授权包获得认证的,如果不指定模式,系统则认为是当前用户模式。
参数说明
●EXTREMELY:
创建的是外部角色,一个外部用户必须在通过某种外部的服务之后才能使用这个角色。
●GLOBALLY:
创建的是全局角色,一个全局用户必须通过企业目录服务后才可使用角色。
★创建一个角色后,oracle自动把该角色及其管理权授予创建角色的用户。
★角色归系统所有,而非角色的创建者。
2.给角色授予权限
(1)给角色授予系统权限
●语法
GRANT系统权限1|已有角色1[,系统权限2|已有角色2…]
TO角色1[,角色2,…]
[WITHADMINOPTION]
例如:
授予testrole角色创建会话和创建表的系统权限。
GRANTCREATESESSION,CREATETABLE
TOtestrole
(2)给角色授予对象权限
●语法
GRANT{对象权限1[,对象权限2…]|ALL[PRIVILEGES]
ON{[模式名.]数据库对象[(列名1[,列名2,…])]|DIRECTORY目录名称}
[WITHGRANTOPTION]
3.将角色授予用户或其他角色
●语法
GRANT角色1[,角色2…]
TO{角色3|[用户1[,用户2,…]|PUBLIC]}
[WITHADMINOPTION]
4.设置默认角色
●每个用户都有一个默认角色列表。
默认角色是当用户登录数据库时由Oracle自动启用的一种角色。
●语法:
ALTERUSER用户名
[DEFAULTROLE
{角色1[,角色2,…]
|ALL[EXCEPT角色1[,角色2…]]
|NONE}];
5.启用和禁用角色
●通过角色的启用和禁用,Oracle可以实现对用户权限的动态控制。
语法:
SETROLE
{角色1[IDENTIFIEDBY密码][,角色21[IDENTIFIEDBY密码]…]
|ALL[EXCEPT角色1[,角色2,…]]
|NONE
};
●带有ALL选项的SETROLE,将启用了用户被授予的所有角色。
●带有NONE选项的SETROLE,将禁用该用户被授予的所有角色。
6.从角色中撤销已授予的系统权限或角色
●语法:
REVOKE
{系统权限1[,系统权限2,…]
|ALL[PRIVILEGES]
|角色1[,角色2,…]}
FROM角色1[,角色2,…];
7.从某个角色撤销已授予的对象权限
●语法:
REVOKE{对象权限1[,对象权限2,…]
|ALL[PRIVILEGES]}
ON{[模式名.]数据库对象[(列名1[,列名2,…])]|DIRECTORY目录名称}
FROM角色1[,角色2,…]
CASCADECONSTRAINTS]
7.删除角色
●语法:
DROPROLE角色名;
实验环境
硬件:
CPU:
2.4G内存:
1G硬盘:
80G
软件:
Windows2003、winXP及以上操作系统,Oracle11g数据库
实验内容和步骤及实验数据
一.角色管理
1.在system用户模式下创建一个名为manager的角色,采用密码认证方式
编写语句如下:
运行结果如下:
并将系统权限createsession、createtable以及createview授予该角色,并使该系统权限能够被级联的传递授予下去。
在SQLdeveloper或SQL*Plus工作单中执行相应命令并截图:
运行语句后,结果如下:
2.将角色manager授予用户名为‘自己名字全拼’的用户。
(例如zhouyujie)
创建用户:
liuxiangyun
连接数据库,出现如下错误:
现在将角色manager授予给用户liuxiangyun
运行结果如下:
再次用liuxiangyun用户,连接数据库:
连接成功:
3.向角色manager授予STU表的DELETE权限和SELECT权限;在SQLdeveloper或SQL*Plus工作单中执行相应命令并截图。
创建STU表
STU表的DELETE权限和SELECT权限授予角色manager
4.将对HR用户EMPLOYEES表的select权限授予PUBLIC,请验证权限授予前后“自己名称全拼”的用户是否可以对该表进行查询;然后收回授予PUBLIC的对象权限。
在system用户下查询有哪些用户
在system用户下有HR用户,所以你不用创建,只需修改他的登陆密码修改如下:
用HR用户连接数据库,并在查询HR用户下有哪些表:
可是看到HR下是有表EMPLOYEES的,所以我们不用再创建表,现在验证“liuxiangyun”的用户是否可以对EMPLOYEES表进行查询
现在将HR用户EMPLOYEES表的select权限授予PUBLIC:
现在再次验证“liuxiangyun”的用户是否可以对EMPLOYEES表进行查询
输入语句:
现在收回授予PUBLIC的对象权限:
此时liuxiangyun用户对EMPLOYEES表也就没了select权限了
5.在system用户模式下创建角色:
hr_manager,product_manager。
并将这两个角色授予角色manager。
将这两个角色授予角色manager。
6.system用户将角色hr_manager授予用户HR;HR再将角色hr_manager授予用户TOM.
7.撤销角色manager的对于表STU的DELETE权限
8.删除角色product_manager
9.请做实验验证用户被授予的系统权限和对象权限级联收回的差异。
解:
给用户授予系统权限:
收回系统权限:
级联给对象manager授权:
回收权限:
分析:
系统权限当用户A赋予一个系统权限给B,B再授予C.然后A将该权限从B回收.此后,C仍然有该权限.对象权限:
用户A赋予一个对象权限给B,B再授予C.然后A将该权限从B回收.此后,C也失去了该权限.也就是说系统权限不能能级联收回,对象权限能被级联收回。
思考题
思考题:
1、新建用户须有哪些系统权限和角色才可建表?
解:
在oracle数据库的权限系统分为系统权限和对象权限。
系统权限可以让用户执行特定的命令集。
当用户获得createtable权限时。
此时允许用户创建表,对象权限可以让用户能够对各个对象进行某些操作。
当某用户将delete权限赋给某个用户时,该用户被允许删除表或视图的行,当某用户获得select权限时,该用户可以通过select从表、视图、序列(sequences)或快照(snapshots)中查询信息。
2、如何查询每个角色所被授予的系统权限?
解:
输入如下语句就可以查看某个角色被授予的系统权限:
SQL>selectPrivilegefromROLE_SYS_PRIVSwhereROLE=&Role
3、如何查询当前用户所被授予的系统权限、对象权限和角色?
解:
查询前用户所被授予的系统权限,输入如下语句:
SQL>Select*fromuser_sys_privs;
查询当前用户所被授予的对象权限,输入如下语句:
SQL>select*fromuser_tab_privs
查询当前用户所被授予的角色,输入如下语句:
SQL>Select*fromSESSION_ROLESorderbyROLE
4、如何查询每个角色所被授予的角色?
解:
输入如下语句,就可以查询每个角色所被授予的角色:
SQL>SelectGRANTED_ROLEfromROLE_ROLE_PRIVSwhereROLE=&ROLE
5.简述profile文件的作用和自己的认识。
解:
profile文件文件时Oracle主要配置文文件之一,系统级的环境变量一般在/etc/profile文件中定义,在CAMS系统与数据库中,相关的环境变量就定义在/etc/profile文件中,我觉得Proflie即是一个口令限制,也就是一个资源限制的命名集合.当我们建立oracle数据库时,oracle会自动建立名为DEFAULT的PROFILE,初始化的DEFAULT没有进行任何口令和资源限制。
6.什么是数据字典?
谈谈你所理解的oracle中的数据字典。
解:
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,它是一种用户可以访问的记录数据库和应用程序源数据的目录。
Oracle中的数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的,当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息
7.seesion_privs是什么?
解seesion_privs用来查看当前用户被授予的权限
实验总结
总结:
通过本次试验,基本了解如何在Oracle11g中通过SQLdeveloper工作单,对里面的用户角色进行合理有效的管理,同时学会了使用企业管理器,深入了解角色的概念及其在访问控制中的重要作用,学会使用一些简单的语句实现用户及角色之间权限的分配和回收,学会使用一些简单的查询语句,查看某个用户和角色被授予哪些系统权限,
能很快熟悉其他数据库的安全管理方法,在做实验的过程中也遇到了一些问题,当我用HR去连接数据库时,出现了如下错误:
解决方法是在system用户下输入此语句alteruserHRaccountunlock,对HR解锁,然后在设置登陆的口令,输入alteruserHRidentifiedby123就可以了。
将角色授予一些权限后,然后再将该角色授予用户,可是用户却没有得到角色的权限,最后才知道新建的用户有没指定表空间给他,他无法在表空间里面建对象。
通过角色传递权限给用户的时候,unlimitedtablespace这个系统权限是不能通过角色传递的,所以用户在授予了角色之后后只有createsession、createtable以及createview权限,而没有对空间的使用权限,所以会出现错误。
指导教师意见
签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- racle 11g数据库的角色管理 11 数据库 角色 管理