Oracle数据安全(三)权限管理
一.权限概述
所谓权限就是执行特定类型SQL命令或访问其他模式对象的权利。用户在数据库中可以执行什么样的操作,以及可以对哪些对象进行操作,完全取决于该用户所拥有的权限。
在Oracle中将权限分为系统权限和对象权限。
系统权限:是指在数据库级别执行某种操作的权限,或是针对某一类对象执行某种操作的权限。
对象权限:是指对某个特定的数据库对象执行某种操作的权限。比如表的插入、删除等
在Oracle中有两种授权的方式
1.利用Grant命令直接给用户授权
2.先将权限授予角色,然后将角色授予用户。
总之Oracle数据库权限管理的过程就是权限授予与回收的过程。
二.系统权限分类
在Oracle中有200多种系统权限。可以查询数据库字典视图SYSTEM_PRIVILEGE_MAP获取所有的系统权限信息。
系统权限主要分两大类
1.一类是对数据库某一对象的操纵能力,与具体的数据库对象无关,通常导游any关键字。
2.另一类系统权限时数据库级别的某种操作能力。如果create session,alter system等。
三.系统权限的授权
可以为用户、角色、PUBLIC组分配系统权限,如果给PUBLIC组分配的权限,那么数据库中的所有用户都有该权限。
语法为
GRANT system——privilege_list |[ALL PRIVILEGES ]
TO user_list|role_list|PUBLIC [WITH ADMIN OPTION];
例如为PUBLIC分配create session权限
grant create session to public ;
为user1授予create table 、create sequence系统权限
grant create table ,create sequence to user1;
让user1的权限具有传递性
grant create table ,create sequence to user1 with admin option;
四.系统权限回收
REVOKE system——privilege_list |[ALL PRIVILEGES ]
FROM user_list|role_list|PUBLIC [WITH ADMIN OPTION];
回收user1的create table 权限
revoke create table from user1;
有三点需要注意的
1.多个系统管理员授予用户同一个权限后,其中一个管理员回收这个权限,该用户将不再有该系统权限
2.为了回收用户系统权限的传递性,必须先回收用户的系统权限,然后在重新授予其相应的系统权限
3.如果一个用户的系统权限具有传递性,并且授予了其他的用户,那么该用户的系统权限回收后,其他用户的系统的并不受影响。
五.对象权限的分类
对象权限时值对某个特定模式对象的操作权限。
六.对象权限的授权
语法
GRANT Object_privilege_list |[ALL PRIVILEGES ][(column,....)] on [schema.]object
TO user_list|role_list|PUBLIC [WITH grant OPTION];
将scott模式下的emp表的select.insert.update对象权限授予用户user1
grant select ,insert,update on scott.emp to user1;
让user1能授权给user2
grant select ,insert,update on scott.emp to user1 with grant option;
七.对象权限的回收
回收user1在emp表上的select 权限
revoke select on scott.emp from user1;
需要的注意的有三点
1.多个管理员授予用户同一个权限后,其中一个管理员回收这个权限,该用户将不再有该对象权限
2.为了回收用户系统权限的传递性,必须先回收用户的系统权限,然后在重新授予其相应的系统权限
3.如果一个用户的对象权限具有传递性,并且授予了其他的用户,那么该用户的对象权限回收后,其他用户的权限也被回收。
Oracle数据安全(三)权限管理的更多相关文章
- SQL Server与Oracle对比学习:权限管理(二) 一些有趣的比喻
http://blog.csdn.net/weiwenhp/article/details/8094739 目录(?)[-] SQL Server权限管理 login 与user的区别 角色role ...
- [转]Oracle学习笔记——权限管理
本文转自:http://www.cnblogs.com/whgw/archive/2011/10/30.html 一.系统的默认用户 1)sys用户是超级用户,具有最高权限,具有sysdba角色,有c ...
- SQL Server与Oracle对比学习:权限管理(一)
http://blog.csdn.net/weiwenhp/article/details/8093661 我们发现我们现在的生活中到处是涉及到密码,你要记各种各样的密码.比如银行卡,邮件,QQ,微博 ...
- struts2学习之旅三 权限管理和导航设计
1,权限管理的db设计和dao实现,尽量简单快速有效: db的设计如下:权限按照角色来赋给用户: 权限对应每一个具体的功能,有菜单级别的,有导航级别的,还有页面级别的功能: 涉及到权限的敏感操作一般都 ...
- oracle新建对象 权限管理
代码 CREATE USER target IDENTIFIED BY target ; GRANT CONNECT, RESOURCE TO target; 刚刚创建的oracle实例中会内建两个用 ...
- oracle中的权限管理
connect resource权限 grant connect,resource to user; 执行上面的sql语句后用户包括的权限: CONNECT角色: --是授予最终用户的典型权利,最基本 ...
- Oracle 表空间和用户权限管理
一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...
- Oracle权限管理详解
Oracle权限管理详解 转载--CzmMiao的博客生活 Oracle 权限 权限允许用户访问属于其它用户的对象或执行程序,ORACLE系统提供三种权限:Object 对象级.System 系统级. ...
- Oracle用户、权限、角色管理(转)
http://blog.csdn.net/junmail/article/details/4381287 Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户 ...
随机推荐
- 使用 Google Guava 美化你的 Java 代码:1~4(转)
参考:https://my.oschina.net/leejun2005/blog/172328 记录不做具体转载了
- 如何将HTML页面的标题设置为“数字天堂”。
如何将HTML页面的标题设置为“数字天堂”. 解答: <html> <head><title>数字天堂</title></head> < ...
- SELinux简介
Security-Enhanced Linux (SELinux)由以下两部分组成: 1) Kernel SELinux模块(/kernel/security/selinux) 2) 用户态工具 SE ...
- uva 10494 - If We Were a Child Again 大数除法和取余
uva 10494 - If We Were a Child Again If We Were a Child Again Input: standard inputOutput: standard ...
- html5 canvas 详细使用教程 转
分类: html5(9) 原文地址:http://www.cnblogs.com/tim-li/archive/2012/08/06/2580252.html 原作很强悍 导航 前言 基本知识 绘 ...
- HDU 3695 / POJ 3987 Computer Virus on Planet Pandora
Computer Virus on Planet Pandora Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1353 ...
- 时间查询缺少部分数据 mvc 解决方案
前情提要: 在c# mvc EF模式下 普通的列表展示页面,采用form提交的,后台视同request对象接收,如果涉及到时间搜索的情况,经常会搞错,现在明确一下怎么做. 一:Request /// ...
- J2EE知识体系(简单整理)
- 用jQuery的attr()设置option默认选中无效的解决 attr设置属性失效
表单下拉选项使用selected设置,发现第一次默认选中成功,在页面不刷新的情况下,再次下拉,selected属性设置了,默认选中不生效 在手机端有些浏览器用jQuery的attr()方法设置sele ...
- 巨蟒python全栈开发-第6天 is&==
1.小数据池 2.id 3.decode和encode 小数据池 #小数据池:不要死磕就行#python为了简化,搞出来的一个东西 ID (1)# id()函数可以帮我们查看一个变量的内存地址# a= ...