二、权限
在oracle数据库中,对数据库进行的各项操作都需要一定的权限,主要分为系统权限(System privileges)和对象权限(Object privileges)。所谓系统权限就是指在系统级别对数据库所进行操作的权限,比如连接数据库需要create session权限,创建表需要create table权限,具体有哪些系统权限可以看oracle的官方文档(Oracle® Database SQL Reference里关于grant命令中有详细的描述);而对象权限则就是指在对象级别上进行操作的权限,如对表对象的增删改查等。
在授予系统权限的时候,可以使用with admin option参数,该参数的作用是让被授权者也具有把该权限授予其他用户的权利,比如三个用户u1、u2、u3,u1把某权限授予u2并使用with admin option参数,则u2就可以把该权限授予u3,此时若u1从u2那收回该权限,u3仍然具有该权限,需u1显式的把该权限从u3那收回。
同样在授予对象的权限的时候,也有个with grant option参数,该参数值授权的时候跟with admin option效果一样,但是在收回权限的时候就不一样了,引用上面那个例子,u1从u2那收回某对象权限的时候,u3也就失去了该权限。
GRANT ANY OBJECT PRIVILEGE对象权限:若某用户获取了该权限,该用户就具有了对其他schema中的对象的相关操作的权限赋予任一用户的权限。比如grant grant any object privilege to u1,则u1不仅可以把自己schema下的对象的操作权限赋予其它用户,也可以把其它schema下的对象的操作权限赋予任一用户,如u1就可以把u2下的表t的查询权限赋予用户u3 grant select on u2.t to u3。
另外,有时我们想把某个权限赋予数据库中的所有用户,可以通过 grant 权限名 to public 来实现。
与权限相关的数据字典主要有如下几个:
dba_sys_privs:数据库中所有用户所具有的系统权限
SQL> desc dba_sys_privs
Name Null? Type
----------------------------------------- -------- ----------------------------
GRANTEE NOT NULL VARCHAR2(30)
PRIVILEGE NOT NULL VARCHAR2(40)
ADMIN_OPTION VARCHAR2(3)
user_sys_privs:当前用户所具有的系统权限
SQL> desc user_sys_privs
Name Null? Type
----------------------------------------- -------- ----------------------------
USERNAME VARCHAR2(30)
PRIVILEGE NOT NULL VARCHAR2(40)
ADMIN_OPTION VARCHAR2(3)
session_privs:当前会话用户所具有的权限
SQL> desc session_privs
Name Null? Type
----------------------------------------- -------- ----------------------------
PRIVILEGE NOT NULL VARCHAR2(40)
dba_tab_privs:数据库中所有用户所具有的对象权限
SQL> desc dba_tab_privs
Name Null? Type
----------------------------------------- -------- ----------------------------
GRANTEE NOT NULL VARCHAR2(30)
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
GRANTOR NOT NULL VARCHAR2(30)
PRIVILEGE NOT NULL VARCHAR2(40)
GRANTABLE VARCHAR2(3)
HIERARCHY VARCHAR2(3)
dba_col_privs:数据库中所有列级对象的授权情况
SQL> desc dba_col_privs
Name Null? Type
----------------------------------------- -------- ----------------------------
GRANTEE NOT NULL VARCHAR2(30)
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
COLUMN_NAME NOT NULL VARCHAR2(30)
GRANTOR NOT NULL VARCHAR2(30)
PRIVILEGE NOT NULL VARCHAR2(40)
GRANTABLE VARCHAR2(3)
分享到:
相关推荐
1. **CONNECT角色**:适用于常规用户,提供基本的数据库连接权限,允许用户创建和管理自己的会话,比如创建表、视图和序列等。但不包含创建数据库结构的权限,如创建新的表空间或数据文件。 2. **RESOURCE角色**:...
Oracle用户权限角色设置,用来在新建的数据库中添加新的用户,并为其设置权限。
1. 角色权限:角色权限是指用户在数据库中的角色,例如 connect、resource 等。 2. 系统权限:系统权限是指用户在数据库中的系统权限,例如 unlimited tablespace 等。 3. 配额权限:配额权限是指用户在数据库中的...
### Oracle用户、权限、角色管理深度解析 在Oracle数据库的管理中,用户、权限和角色的管理是确保数据安全和高效使用的关键环节。本文将详细阐述Oracle中的用户管理、权限设置,以及角色管理的重要概念和操作流程。...
oracle 用户、权限和角色管理,oracle 人员必看。
根据给定的文件标题、描述、标签以及部分内容,本文将详细介绍如何在Oracle数据库中查看不同类型的用户权限。本文将按照以下顺序展开: 1. 查看所有用户 2. 查看用户或角色系统权限(直接赋值给用户或角色的系统...
其中,`dba_role_privs`显示所有用户的角色权限,而`user_role_privs`只展示当前用户的角色权限。 ### 6. 查看当前用户的缺省表空间 此外,我们还可以查询当前用户的缺省表空间和临时表空间: - `SELECT username...
..Oracle11用户角色权限等操作.docx
..Oracle11用户角色权限等操作.pdf
在Oracle中,权限和角色的概念是为用户提供访问控制机制,允许管理员精细地控制用户对数据库对象的访问权限,同时简化权限的分配过程。 1. 权限(Privileges):权限是Oracle中允许用户执行特定操作的能力。例如,...
Oracle 权限设置 一、权限分类: ...CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,
### Oracle用户与权限管理详解 Oracle数据库作为一款广泛应用于企业级环境中的关系型数据库管理系统,其用户管理和权限分配机制是确保数据安全性与访问控制的关键环节。以下是对Oracle中用户、权限与角色管理的深入...
Oracle数据库的用户角色及权限管理是数据库管理员(DBA)日常工作中不可或缺的部分,它涉及到数据库的安全性和访问控制。本文将详细阐述Oracle中的用户、角色和权限的概念以及如何进行管理。 首先,Oracle数据库中...
### Oracle用户创建及权限设置详解 #### 一、Oracle用户管理概述 在Oracle数据库中,用户管理和权限控制是非常重要的组成部分,它们确保了数据的安全性和访问的合理性。通过创建不同的用户并赋予相应的权限,可以...
oracle笔记控制用户权限及练习,控制用户权限,授权,收回权限等操作,有具体的代码案例!
以上就是Oracle用户权限的详细说明,以及创建用户并为其分配权限的操作方法。作为数据库管理员,理解这些基础知识是管理好Oracle数据库的前提。通过命令行工具和数据库管理系统提供的视图,DBA可以有效地实现权限...
使用PLSQL创建Oracle数据库User用户并设置权限 主要演示了如何使用 PLSQL 创建一个 User 用户, 并使之具有创建表、修改表、访问表的权限。解决了 使用自定义用户创建表时出现的 没有表空间的访问权限的问题。
在Oracle数据库管理中,了解如何查看用户、权限和角色对于维护数据库的安全性和功能至关重要。以下是对给定文件中提到的命令和视图的详细解析,旨在深入理解Oracle中用户、权限和角色的管理。 ### 1. 查看所有用户 ...
在Oracle数据库管理中,权限管理是一项重要的任务,它涉及到对用户、角色及对象等数据库实体的访问控制。通过合理地分配权限,可以有效地保护数据的安全性和完整性,同时确保业务流程的正常运行。下面我们将详细介绍...