设为首页 收藏本站
查看: 1214|回复: 0

[经验分享] 【转】Oracle的System和Object权限

[复制链接]

尚未签到

发表于 2015-6-17 07:47:37 | 显示全部楼层 |阅读模式
System:允许用户执行特定的数据库操作或某类数据库操作,例如,创建表空间的权限就是一种系统权限。
Object:允许用户对特定对象(如表、视图、序列、过程、函数或程序包)执行特定的操作。

oracle有100 多种不同的系统权限。
系统权限可分为以下几类:
1)允许执行系统范围操作的权限;如CREATE SESSION,CREATE TABLESPACE
2)允许管理用户自己方案中的对象的权限;如CREATE TABLE
3)允许管理任何方案中的对象的权限;如CREATE ANY TABLE
可使用DDL 命令GRANT 和REVOKE 控制权限,这两个命令为用户或角色添加和撤消系统权限。

系统权限举例 DSC0000.png

图1

授予系统权限
使用SQL 语句GRANT 为用户授予系统权限。
被授予者可通过ADMIN 选项进一步为其他用户授予系统权限。使用ADMIN 选项授予系统权限时应小心。这样的权限通常只限于安全管理员使用,很少授予其他用户。
GRANT {system_privilege|role}
[, {system_privilege|role} ]...
TO {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH ADMIN OPTION]
其中:
system_privilege:指定要授予的系统权限
Role:指定要授予的角色名
PUBLIC:将系统权限授予所有用户
WITH ADMIN OPTION:允许被授予者进一步为其他用户或角色授予权限或角色
Grant any object privilege:见授予对象权限。
两个特殊角色: DSC0001.png

图2
只有数据库管理员可以使用管理员权限与数据库连接。以SYSDBA 身份连接可以授予用户不受限制的权限,以便对数据库或数据库中的对象执行任何操作。
系统权限限制
Oracle9i 中的字典保护机制可防止未经授权的用户访问字典对象。
只有角色SYSDBA 和SYSOPER 可以访问字典对象。允许访问其他方案中的对象的系统权限并不授予您对字典对象的访问权限。例如,SELECT ANY TABLE 权限允许访问其它方案中的视图和表,但不允许选择字典对象(基表、视图、程序包和同义词)。
如果 O7_DICTIONARY_ACCESSIBILITY参数设置为TRUE, 则允许访问SYS 方案中的对象(Oracle7 行为)。如果该参数设置为FALSE,则允许访问其它方案中的对象的SYSTEM 权限不允许访问字典方案中的对象。
例如,如果O7_DICTIONARY_ACCESSIBILITY=FALSE,则SELECT ANY TABLE 语句将允许访问除SYS 方案外的任何方案中的视图或表(例如,不能访问字典)。系统权限EXECUTE ANY PROCEDURE 将允许访问除SYS 方案外的任何其它方案中的过程。

撤消系统权限
可以使用REVOKE SQL 语句撤消系统权限。使用ADMIN OPTION 授予系统权限的用户可以撤消任何其他数据库用户的权限。撤消者不必是原先授予该权限的那个用户。
REVOKE {system_privilege|role}
[, {system_privilege|role} ]...
FROM {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
注:
-  REVOKE 命令只能撤消使用GRANT 命令直接授予的权限(即不包括角色的权限)。
-  撤消系统权限可能对一些相关对象有影响。例如,如果将SELECT ANY TABLE 授予某用户,而该用户已创建了使用其它方案中的表的过程或视图,则撤消该权限将使这些过程或视图无效。 DSC0002.png

图3
情况:
1. DBA 使用ADMIN OPTION 将系统权限CREATE TABLE 授予Jeff。
2. Jeff 创建一个表。
3. Jeff 将系统权限CREATE TABLE 授予Emi。
4. Emi 创建一个表。
5. DBA 撤消Jeff 的CREATE TABLE 系统权限。
结果:
Jeff 的表依然存在,但是,无法创建新表。
Emi 的表依然存在,并且她仍然拥有CREATE TABLE 系统权限。
Tips: DSC0003.png


对象权限 DSC0004.png

图5
对象权限是一种对于特定的表、视图、序列、过程、函数或程序包执行特定操作的一种权限或权利。上表列出了各种对象的权限。需要注意的是适用于序列的权限只有SELECT 和ALTER。通过指定可更新列的子集可以对UPDATE、REFERENCES 和INSERT 权限加以限制。通过用列的子集创建视图并授予对于该视图的SELECT 权限,则可对SELECT 权限加以限制。对于同义词的授权会转换为对于该同义词所引用的基表的授权。
授予对象权限
GRANT { object_privilege [(column_list)]
[, object_privilege [(column_list)] ]...
|ALL [PRIVILEGES]}
ON [schema.]object
TO {user|role|PUBLIC}[, {user|role|PUBLIC} ]...
[WITH GRANT OPTION]
其中:
object_privilege:指定要授予的对象权限
column_list:指定表或视图列(只在授予INSERT、REFERENCES 或UPDATE 权限时才指定。)
ALL:将所有权限授予已被授予WITH GRANT OPTION 的对象
ON object:标识将要被授予权限的对象
WITH GRANT OPTION:使被授予者能够将对象权限授予其他用户或角色
使用GRANT 语句授予对象权限。
? 要授予权限,对象必须在自己的方案中(除非已被授予Grant any object privilege权限),或者已通过GRANT OPTION 被授予权限。
? 缺省情况下,如果拥有某个对象,则自动获得对该对象的所有权限。
? 若有安全方面的考虑,则将您的对象权限授予其他用户时应谨慎。
WITH GRANT OPTION clause
Specify WITH GRANT OPTION to enable the grantee to grant the object privileges to other users and roles. The user whose schema contains an object is automatically granted all associated object privileges with the GRANT OPTION. This special privilege allows the grantee several expanded privileges:
- The grantee can grant the object privilege to any users in the database, with or without the GRANT OPTION, or to any role in the database.
- If both of the following are true, the grantee can create views on the table and grant the corresponding privileges on the views to any user or role in the database:
- The grantee receives object privileges for the table with the GRANT OPTION.
- The grantee has the CREATE VIEW or CREATE ANY VIEW system privilege

撤消对象权限
REVOKE 语句用来撤消对象权限。要撤消对象权限,撤消者必须是将被撤消的对象权限的原始授予者。
使用下列命令撤消对象权限:
REVOKE { object_privilege
[, object_privilege ]...
| ALL [PRIVILEGES] }
ON [schema.]object
FROM {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[CASCADE CONSTRAINTS]
其中:
object_privilege:指定将撤消的对象权限
ALL:撤消已授予用户的所有对象权限
ON:标识将撤消其对象权限的对象
FROM:标识将撤消其对象权限的用户或角色
CASCADE CONSTRAINTS:删除撤消使用REFERENCES 或ALL 权限定义的任何引用完整性约束
限制:
授予者只能对其已经授予权限的用户撤消对象权限。 DSC0005.png

图6
情况:
? 通过GRANT OPTION 授予Jeff 对于EMPLOYEES 的SELECT 对象权限。
? Jeff 将对于EMPLOYEES 的SELECT 权限授予Emi。
? 之后,撤消Jeff 的SELECT 权限。该撤消也对Emi 产生级联影响。
Tips  
DSC0006.png
DSC0007.png


图7
获取信息:
DBA_SYS_PRIVS
SESSION_PRIVS
DBA_TAB_PRIVS
DBA_COL_PRIVS

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-78019-1-1.html 上篇帖子: Oracle 10g OCP 042 题库 121 下篇帖子: 大话设计模式读书笔记3----开放封闭原则(OCP)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表