oracle数据库权限之一——概念

Oracle系统权限和角色权限都对用户的权限作了相应的限制,这也在一定程度上保护了数据库的访问安全。下面就让我们来一起了解一下。

Oracle系统权限

Oracle系统权限需要授予者有进行系统级活动的能力,如连接数据库,更改用户会话、建立表或建立用户等等。你可以在数据字典视图SYSTEM_PRIVILEGE_MAP上获得完整的系统权限。

对象权限

某一个用户可对其中的对象,直接授权给其它用户。

需注意的是,当某一个用户userA拥有查询其它用户userB下某个表tableA的视图viewA时,如userA用户需将viewA的查询权限授予userC,则必须同时将userB用户下tableA表的查询权限授予userC用户才可以。

对象权限和Oracle系统权限都通过GRANT语句授予用户或角色。需要注意的是在授予对象权限时语句应该是WITH GRANT OPTION子句,但在授予系统权象时语句是WITH ADMIN OPTION,所以在你试图授予系统权限时,使用语句WITH GRANT OPTION系统会报告一个错误:ONLY ADMIN OPTION can be specified。要特别注意这个语法和错误信息。

角色和角色权限

角色权限就是将属于用户的权限授予一个角色。任何权限都可以授予给一个角色。同时,一个角色可以授予另一个角色,但不能授予自己,也不能循环授权。

在会话期间通过SET ROLE语句授予或撤销角色权限。

在PL/SQL块中使用角色时,需要视其是否为匿名块、定义者权限还是调用者权限来决定。

1)在命名PL/SQL块(存储过程、函数、触发器)按照定义者权限进行执行时,所有角色都会失效。执行过程中查询SESSION_ROLES视图不会返回结果。

2)在命名PL/SQL块(存储过程、函数、触发器)按照调用者权限进行执行时,以及执行匿名PL/SQL块时,可以使用角色进行权限检查,也可以在块中使用动态SQL设置相应的角色(SET ROLE语句)。

授予和撤销权限

给用户或者角色授予权限使用GRANT 语句,GRANT语句的语法如下:

GRANT ROLE(或system privilege) TO user(role,Public) WITH ADMIN OPTION(可选)

对象权限被授予 WITH GRANT OPTION

涉及到权限的数据字典表主要有:

1、SYSTEM_PRIVILEGE_MAP

系统中所有的系统权限列表。

2、DBA_ROLES

系统中所有的角色列表。

3、数据库级权限列表

DBA_SYS_PRIVS

哪些用户或角色拥有哪些系统权限。

DBA_ROLE_PRIVS

哪些用户或角色拥有哪些角色。

DBA_TAB_PRIVS

哪些用户或角色拥有哪些对象的什么具体权限,对象包括表、视图、过程、函数、包、类型等。

DBA_COL_PRIVS

哪些用户或角色拥有哪些表的哪些列的什么权限,这些权限主要包括UPDATE、REFERENCES。

4、用户级权限列表

USER_SYS_PRIVS

当前用户拥有的系统权限。

USER_ROLE_PRIVS

当前用户拥有的角色权限。

USER_TAB_PRIVS

作为对象的拥有者、对象权限的授予者、对象权限的被授予者,当前用户涉及到的相关对象权限。

USER_TAB_PRIVS_MADE

作为对象的拥有者,当前用户涉及到的相关对象权限。

USER_TAB_PRIVS_RECD

作为对象权限的被授予者,当前用户涉及到的相关对象权限。

USER_COL_PRIVS

作为列对象的拥有者、列对象权限的授予者、列对象权限的被授予者,当前用户涉及到的相关列对象权限。

USER_COL_PRIVS_MADE

作为列对象的拥有者,当前用户涉及到的相关列对象权限。

USER_COL_PRIVS_RECD

作为列对象权限的被授予者,当前用户涉及到的相关列对象权限。

5、ALL级权限列表

ALL_TAB_PRIVS

1)作为对象的拥有者、对象权限的授予者、对象权限的被授予者,当前用户涉及到的相关对象权限。

2)当前用户的所属角色(包括PUBLIC角色)所拥有的对象权限。

ALL_TAB_PRIVS_MADE

作为对象的拥有者、对象权限的授予者,当前用户涉及到的相关对象权限。

ALL_TAB_PRIVS_RECD

1)作为对象权限的被授予者,当前用户涉及到的相关对象权限。

2)当前用户的所属角色(包括PUBLIC角色)所拥有的对象权限。

ALL_COL_PRIVS

1)作为列对象的拥有者、列对象权限的授予者、列对象权限的被授予者,当前用户涉及到的相关列对象权限。

2)当前用户的所属角色(包括PUBLIC角色)所拥有的列对象权限。

ALL_COL_PRIVS_MADE

作为列对象的拥有者、列对象权限的授予者,当前用户涉及到的相关列对象权限。

ALL_COL_PRIVS_RECD

1)作为列对象权限的被授予者,当前用户涉及到的相关列对象权限。

2)当前用户的所属角色(包括PUBLIC角色)所拥有的列对象权限。

6、角色级权限列表

ROLE_ROLE_PRIVS

当前用户下,哪些角色被授予了哪些角色。

ROLE_SYS_PRIVS

当前用户下,哪些角色被授予了哪些系统权限。

ROLE_TAB_PRIVS

当前用户下,哪些角色被授予了哪些对象权限。

7、会话级权限列表

SESSION_PRIVS

当前用户所拥有的系统权限。

SESSION_ROLES

当前用户所拥有的角色。

时间: 2024-08-28 22:27:51

oracle数据库权限之一——概念的相关文章

oracle数据库权限管理

权限管理: oracle 9里面默认的三个用户名和密码: sys change_on_install //权限最高的管理员 system manager //普通的管理员 scott tiger //普通用户 在oracle 10中,仍然使用这三个用户作为默认用户.但sys和system用户的密码不再默认. 权限管理: oracle 9里面默认的三个用户名和密码: sys change_on_install //权限最高的管理员 system manager //普通的管理员 scott tig

Oracle数据库的基本概念(转)

一.数据库 我们在安装Oracle数据库时,全局数据库名:就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名. 启动数据库:也叫全局数据库,是数据库系统的入口,它会内置一些高级权限的用户如SYS,SYSTEM等.我们用这些高级权限账号登陆就可以在数据库实例中创建表空间,用户,表了. 二.数据库实例 用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,

Oracle数据库 第一天

1. Oracle数据库 收费数据库.数据处理能力强.安全性高 2. 操作数据库的语言 SQL语言,执行的标准是SQL99标准 3. 数据库的产品 ①收费:Oracle.SQLserver.DB2... ②免费:MYSQL... 4. Oracle数据库的结构类型 C/S结构的  (需要在本机上有客户端) 5. Oracle数据库权限最高的用户 sys用户,system用户次之 6. 数据库的逻辑类型 层次型.网状型.关系型 -- 前两个已经过时了,关系型是目前市场上的主流数据库,前沿研究趋势是

Oracle数据库备份恢复基础讲解_超越OCP精通Oracle视频教程培训12

Oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习Oracle数据库备份恢复概念及基础,包括:Oracle常见的故障类型.Oracle备份的重要性及备份策略.Oracle如何制定合适的备份策略保证高效备份.Oracle备份分类.MTTR,MTBR,MTTF.Oracle物理备份与逻辑备份.Oracle备份恢复的工具及Oracle还原与恢复介绍. 适用人群 IT相关从业人员.Oracle数据库技术人员.想加工资的.想升职的都可以. 视频在线学习地址: http://e

SSIS获取Oracle数据库数据

获取Oracle数据库步骤如下: 1.目标服务器获取连接Oracle数据库权限2.安装Oracle客户端,名称为win32_11gR2_client 安装管理员版本的.3.将配置文件tnsnames.ora放到D:\app\Administrator\product\11.2.0\client_1\network\admin下,并且tnsnames.ora包含ip,端口号和服务名(SID)4.SSIS中使用OLE DB连接Microsoft OLE DB Provider for Oracle

Oracle数据库最全笔记--基本概念(持续更新)

前言: 为什么要学习数据库? 1.1数据库的概念 数据库是按照数据结构组织,存储和管理数据的仓库. 数据库,简单来说是本身可视为电子化的文件柜-存储电子文件的处所,用户可以对文件中的数据进行新增.截取.更新.删除等操作. 它将数据以一定方式存储在一起.能够为多个用户共享.尽可能小的冗余度的特点.是与应用程序彼此独立的数据集合. 1.2数据模型是数据库中数据的存储方式,是数据库系统的基础 数据模型经历了: 1.2.1层次模型:层次模型是数据库系统最早使用的一种模型,他的数据结构是一颗"有向树&qu

谈谈Oracle 数据库的系统权限UNLIMITED TABLESPACE

作者:赵全文 网名:guest 前日上午,开发同学反馈,应用程序在连接一套Oracle 11.2.0.4.0数据库的生产用户时,一直报"无操作表空间"的权限.于是,我赶紧连到SQLPLUS里进行查看该用户具有什么样的权限(包括系统权限.角色权限和对象权限),没有发现什么异常.大家都知道,一般在建立用户以后,都会给CONNECT和RESOURCE的角色权限.然后,我连到其它无报错的另一套Oracle 11.2.0.4.0数据库的生产用户上查看,两套数据库进行对比,发现报错的那套数据库没有

oracle数据库基础概念理解

1.oracle数据库服务器企业版安装后会默认安装一个数据库实例,安装时有4个管理员账号,安装时设置相同的用户名及口令. 2.数据库实例安装好后,我们可以在其上创建多个表空间,接着可以创建新用户,给新用户分配connect,resource,dba权限,给用户分配所属的表空间,这样不同的用户,在不同的表空间内工作,互不影响.可以为每一个项目数据库建立一个表空间,这里的表空间有点像mysql里的数据库. 3.我们也可以使用dbca(数据库创建助手),新建另外的数据库实例,并且指定新的该数据库的4个

Linux oracle数据库创建表空间、用户并赋予权限

管理员用户登录oracle数据库 1.创建临时表空间 select name from v$tempfile;查出当前数据库临时表空间,主要是使用里面的存放路径: 得到其中一条记录/opt/oracle/oradata/orcl/temp01.dbf 创建临时表空间:create temporary tablespace plncontrol_temp tempfile '/opt/oracle/oradata/orcl/plncontrol_temp.dbf' size 100m reuse