oracle回收所有权限 resource包含哪些权限

Oracle资源管理器(Oracle Database Resource Manager)资源限制与使用详解_附
内容发布:|
发布时间: 16:18:47
Oracle资源管理器(Oracle Database Resource Manager)资源限制与使用详解_附PDF_DBMS_RESOURCE_MANAGER
一、Oracle资源管理器简介
Oracle资源管理器(Oracle Database Resource Manager,以下简称DBRM)管理数据库资源,为不同的会话分配不同的数据库资源。DBRM管理的资源主要包括CPU时间。下面分以下几个章节介绍:
  Oracle DBRM帮你处理哪些问题
  Oracle DBRM是怎样处理这些问题的
  Oracle DBRM包含的内容
  Oracle DBRM资源分配方法
  Oracle DBRM的权限管理
  Oracle DBRM帮你处理哪些问题
Managing Resource Allocation with Oracle Database 11g Resource Manager.jpg (121.38 KB, 下载次数: 0)
Managing Resource Allocation with Oracle Database 11g Resource Manager
16:15 上传
<font color="#、如果数据库的资源分配由操作系统决定,会遇到如下问题:
(1)& && & Excessive overhead过度的开销
Excessive overhead results from operating system context switching (OS 上下文切换)between Oracle Database server processes when the number of server processes is high.
(2)& &Inefficient scheduling低效率的调度
The operating system deschedules database servers while they hold latches, which is inefficient.
(3)& &Inappropriate allocation of resources不适当的资源分配
The operating system distributes resources equally among all active processes and cannot prioritize one task over another.
(4)& &Inability to manager database-specific resources,such as parallel execution servers and active sessions
<font color="#、Resource Manager允许数据库控制硬件资源的分配,在多用户并发执行不同优先级的Job时,不同的session可以按照不同的优先级对待,Resource Manager允许我们根据session的属性将session分类到不同的groups,然后对不同的groups分配不同的资源。
使用Resource Manager可以做到如下:
(1)& &保护某个session分配到最小的CPU资源,而不管系统的压力和用户的数量。
(2)& &针对不同的用户和应用分配不同比例的CPU时间。
(3)& &限制用户组成员任何操作的并行深度。
(4)& &管理并行队列中并行的执行顺序,紧急应用的并行可以优先于其他低优先级的并行。
(5)& &限制group中用户可以使用并行的数量,这样可以确保所有可用的并行资源不会被分配到某一个group用户。
(6)& &创建active session pool。Active session pool由同一个group中用户session被允许并发active的最大数量组成。附加的session可以超过这个限制执行,当job队列中断后,可以指定超时时间。
(7)& &通过如下方法管理和调用runaway session
<font color="#) 修改group可以消耗CPU资源的比率值。
<font color="#) 检测session或者call是否超过了指定CPU或者I/O的限制。然后自动的中断session或call,或切换其小于consumer group中指定的CPU资源数。
(8)& &阻止优化器估算其运行时间超过指定限制的操作。
(9)& &限制session可以被空闲的时间。
(10)&&根据工作量的改变允许数据库使用不同的resource plan。可以动态的修改这些resource plan。也可以在Scheduler中使用resource plan。
二、Oracle Resource Manager的组成元素
Description
Resource consumer group
A group of sessions that are grouped together based on resource requirements. The Resource Manager allocates resources to resource consumer groups, not to individual sessions.
Resource plan
A container for directives that specify how resources are allocated to resource consumer groups. You specify how the database allocates resources by activating a specific resource plan.
Resource plan directive
Associates a resource consumer group with a particular plan and specifies how resources are to be allocated to that resource consumer group.
<font color="#、 Resource Consumer Groups
(1)Resource Consumer Group是一个用户session的集合,其根据session需要的进程进行归类,当一个session创建之后,它就自动根据用户指定的规则映射到对应的consumer group。
(2)DBA也可以手工的切换session到不同的consumer group。简言之,就是使用PL/SQL包来切换session到指定的consumer group。
(3)因为Resource Manager仅分配资源到一个consumer group,当一个session变成consumer group中的一员时,它的资源分配就由该consumer group决定。
(4)在数据字典里一直存在3个特定的consumer groups,它们不能被修改和删除。
<font color="#、 Resource plans
Resource plan是预先定义好的,可以创建任意个resource plan,但是在同一时刻只有一个resource plan是激活的。当resource plan是激活时,它的每个子resource plan控制每个资源分配到不同的consumer group。每个plan必须 包含一个指令,其分配资源到OTHER_GROUPS的consumer group。OTHER_GROUPS适用于所有的session,即使不是当前激活的plan。
<font color="#、 Resource Plan Directive
Resource Manager根据当前active resource plan的Resource Plan Directive的设置分配资源到consumer groups。Resource Plan和Resource Plan Directive是父子关系,每个Resource Plan Directive只对应一个consumer group。
三、管理Resource Manager的权限
管理Resource Manager必须具有ADMINISTER_RESOURCE_MANAGER权限,在DBA的role里已经包含了这个权限。
通过DBMS_RESOURCE_MANAGER_PRIVS包来执行ADMINISTER_RESOURCE_MANAGER权限的授予和撤销。该包中两个相关的procedures:
Description
GRANT_SYSTEM_PRIVILEGE
Grants the ADMINISTER_RESOURCE_MANAGER system privilege to a user or role.
REVOKE_SYSTEM_PRIVILEGE
Revokes the ADMINISTER_RESOURCE_MANAGER system privilege from a user or role.
如:授予TEST用户ADMINISTER_RESOURCE_MANAGER权限
SYS@ tsid & begin
&&2&&dbms_resource_manager_privs.grant_system_privilege(
&&3&&grantee_name =&'TEST',
&&4&&privilege_name =&'ADMINISTER_RESOURCE_MANAGER',
&&5&&admin_option =&FALSE);
PL/SQL procedure successfully completed.
撤销TEST用户ADMINISTER_RESOURCE_MANAGER权限
SYS@ tsid & begin
&&2&&dbms_resource_manager_privs.revoke_system_privilege(
&&3&&revokee_name =&'TEST',
&&4&&privilege_name =&'ADMINISTER_RESOURCE_MANAGER');
PL/SQL procedure successfully completed.
该包中另外两个procedures:
GRANT_SWITCH_CONSUMER_GROUP
REVOKE_SWITCH_CONSUMER_GROUP
四、Resource Manager管理的资源类型
<font color="#、 CPU
<font color="#、 Degree of Parallelism Limit
可以限制同一个consumer group中最大的并行数,degree of parallelism是同一个操作的并行执行的数量,使用PARALLEL_DEGREE_LIMIT_P1指令来指定consumer group的并行限制。
Degree of parallelism limit仅对consumer group中的一个操作限制,其不限制同一个consumer group中所有错做的并行度。但可以通过PARALLEL_DEGREE_LIMIT_P1和PARALLEL_TARGET_PERCENTAGE指令属性来实现该功能。
<font color="#、 Parallel Target Percentage
这个功能仅从oracle 11gR2开始使用!
如果一个consumer group使用了所有的并行,那么当其他consumer group的高优先级的并行就没有parallel server来分配,可以通过限制特定consumer group的并行数来避免这个问题。
使用PARALLEL_TARGET_PERCENTAGE指令属性可以指定consumer group可以使用最大parallel server pool的比率。
例如,假设总共的parallel server是32,在初始化参数里设置MY_GROUP consumer group的PARALLEL_SERVERS_TARGET为50%,那么该组group最大就只能使用16个parallel servers。
<font color="#、 Parallel Queue Timeout
这个功能从Oracle 11gR2以后才有!
当使用并行队列时,如果数据库没有足够的资源来执行并行,那么并行就会进入队列,直到有资源时才变成可用。但是存在一种情况,就是并行等待了很长的时间才执行,可以设置并行在队列中的最长等待时间来避免这种问题。
<font color="#、 Active Session Pool with Queuing
可以控制单个consumer group中最大的并发的active sessions的数量。这个最大的数就是active session pool。
<font color="#、 Automatic Consumer Group Switching
This methodenables you to control resource allocation by specifying criteria that, if met,causes the automatic switching of a session to a specified consumer group.Typically, this method is used to switch a session from a high-priorityconsumer group—one that receives a high proportion of system resources—to alower priority consumer group because that session exceeded the expectedresource consumption for a typical session in the group.
<font color="#、 Canceling SQL and Terminating Sessions
可以使用命令取消或中止long-runing的session。
<font color="#、 Execution Time Limit
可以指定操作最大的执行时间,如果超过这个时间,操作将终止。
<font color="#、 Undo Pool
可以为每个consumer group指定undo pool,undo pool控制总的undo数量。当总的undo生成量超过了这个限制,那么当前的事务操作生成的undo会被中断,只有undo pool空间足够时,才可以执行。
<font color="#、Idle Time Limit
& & 指定session空闲时间,当超过这个时间时,session被中断。
五、下面我们以例子的形式来介绍Oracle资源管理(resource manager)的使用。
<font color="#、授权
对于DBA,已经具有执行dbms_resource_manager程序包下的所有过程的权限,但对于其他用户,需要授予名为
administer_resource_manager的系统权限,以便使用Oracle resource manager。如下:
SQL& begin
&&2& &&&dbms_resource_manager_privs.grant_system_privilege(
&&3& &&&grantee_name=&'djp01',
&&4& &&&privilege_name=&'administer_resource_manager',
&&5& &&&admin_option=&true);
PL/SQL procedure successfully completed.
SQL& begin
&&2& &&&dbms_resource_manager_privs.grant_system_privilege(
&&3& &&&grantee_name=&'imadmin',
&&4& &&&privilege_name=&'administer_resource_manager',
&&5& &&&admin_option=&true);
PL/SQL procedure successfully completed.
说明:我们利用dbms_resource_manager_privs.包中的gratn_system_privilege过程为用户djp01和imadmin授予administer_resource_manager权限。
<font color="#、创建未决区
未决区是创建与资源消费组,资源计划,资源指示的临时工作区。创建如下:
SQL& exec dbms_resource_manager.create_pending_
PL/SQL procedure successfully completed.
<font color="#、创建资源消费组
资源消费组用来根据资源需求将类似的用户放到一起。例子如下:
SQL& begin
&&2& &&&dbms_resource_manager.create_consumer_group(
&&3& &&&consumer_group=&'app',
&&4& &&&comment=&'app user');
PL/SQL procedure successfully completed.
SQL& begin
&&2& &&&dbms_resource_manager.create_consumer_group(
&&3& &&&consumer_group=&'admin',
&&4& &&&comment=&'user admin system');
PL/SQL procedure successfully completed.
说明:consuber_group用来指定资源消费组名,connent用来给资源消费组添加注释。还有一些默认的参数,如CPU_MTH,该参数有两个值为:run_to_completion和round_robin(默认)。run_to_completion方法为优先调度那些占用较长时间的会话,
round_robin是使用一个循环调度系统。对于上述,我们使用默认的CPU调度方法创建消费组app和admin。我们可以用如下的数据字典查看:
SQL& select consumer_group,cpu_method,mgmt_method
&&2&&from dba_rsrc_consumer_groups
&&3&&where consumer_group in (upper('app'),upper('admin'))
CONSUMER_GROUP
------------------------------------------------------------
CPU_METHOD
------------------------------------------------------------
MGMT_METHOD
------------------------------------------------------------
ROUND-ROBIN
ROUND-ROBIN
ROUND-ROBIN
ROUND-ROBIN
<font color="#、创建资源计划:
资源计划包含各资源消费组之间资源分配的指示。例子如下:
SQL& begin
&&2& &&&dbms_resource_manager.create_plan(
&&3& &&&plan=&'membership_plan',
&&4& &&&cpu_mth=&'ratio',
&&5& &&&comment=&'new membership resource plan');
PL/SQL procedure successfully completed.
说明:plan用来指定资源计划的名称,CPU_mth指定资源消费组之间分配CPU的方法,默认为emphasisI(百分比),另一个值为ratio(比率)。connect添加注释。还有一些其他默认的参数:active_sess_pool_mth此参数确定资源组中活动会话数目的限制;到11g版本,唯一一个值为active_sess_pool_absolute方法。parallel_degree_limit_mth此参数确定某个特定操作的并行度,到11g版本,唯一一个值为parallel_degree_limit_absolute。sub_plan此参数确定是否子计划,默认为false。queueing_mth此参数确定排队会话将执行的顺序,可以选项为fifo_timeout。
<font color="#、创建资源计划指示
资源计划指示(resource plan directive)用来把资源计划分配到资源消费组中。例子如下:
SQL& begin
&&2& &&&dbms_resource_manager.create_plan_directive(
&&3& &&&plan=&'membership_plan',
&&4& &&&group_or_subplan=&'app',
&&5& &&&comment=&'app grooup',
&&6& &&&cpu_p1=&100);
PL/SQL procedure successfully completed.
SQL& begin
&&2& &&&dbms_resource_manager.create_plan_directive(
&&3& &&&plan=&'membership_plan',
&&4& &&&group_or_subplan=&'admin',
&&5& &&&comment=&'admin group',
&&6& &&&cpu_p2=&70);
PL/SQL procedure successfully completed.
说明:plan用于指定资源计划,group_or_subplan用于指定资源消费组或子计划,connent用于添加注释。
cpu_pn此参数指定可在消费组或子计划中分配CPU资源。可以使用多层CPU资源分配,以区分出CPU的优先级。如,保证仅在层次一需求后还剩的CPU时,层次二才能获得CPU资源。 ACTIVE_SESS_POOL_P1此参数用来设置活动会话打开的最大数目。 PARALLEL_DEGREE_LIMIT_P1此参数用来设置并行度的限制,MAX_IDLE_TIME此参数用来设置单个会话空间的最大时间。 SWITCH_GROUP此参数指定会话可根据特定的切换条件进行切换的消费组。两个切换组为cancel_sql 和kill_session。与
SWITCH_GROUP有关参数的设置,SWITCH_IO_MEGABYTES此参数指定会话在数据库在采取措施前可以传送的IO字节数据。 SWITCH_IO_REQS指定可执行的IO数目。SWITCH_FOR_CALL如果设置为true,Oracle将完成顶层后被切换以原来的会话。
<font color="#、验证并提交未决区
SQL& exec dbms_resource_manager.validate_pending_
PL/SQL procedure successfully completed.
SQL& exec dbms_resource_manager.submit_pending_
PL/SQL procedure successfully completed.
我们用如下的方式进行查看:
SQL& select group_or_subplan,cpu_p1,cpu_p2,cpu_p3,status
&&2&&from dba_rsrc_plan_directives
&&3&&where plan = upper('membership_plan')
GROUP_OR_SUBPLAN& && && && && && && && && && && && && && && && & CPU_P1
------------------------------------------------------------ ----------
& & CPU_P2& &&&CPU_P3
---------- ----------
------------------------------------------------------------
APP& && && && && && && && && && && && && && && && && && && && && && &90
& && && &0& && && & 0
ADMIN& && && && && && && && && && && && && && && && && && && && && &&&0
& && && &70& && && & 0
<font color="#、指派用户到资源消费组中,如下:
创建用户后,Oracle会分配一个默认的资源消费组,为default_consumer_group,如果指派用户到其他消费组,那么,
需要授予如下权限:
SQL& exec dbms_resource_manager_privs.grant_switch_consumer_group-
& (grantee_name=&'djp01',-
& consumer_group=&'app',-
& grant_option=&true);
PL/SQL procedure successfully completed.
SQL& exec dbms_resource_manager_privs.grant_switch_consumer_group-
& (grantee_name=&'imadmin',-
& consumer_group=&'admin',-
& grant_option=&true);
PL/SQL procedure successfully completed.
下面我们进行用户分配:
SQL& exec dbms_resource_manager.set_initial_consumer_group('djp01','app');
PL/SQL procedure successfully completed.
SQL& exec dbms_resource_manager.set_initial_consumer_group('imadmin','admin');
PL/SQL procedure successfully completed.
关于会话资源消费组的自动指派和消费组之间的切换及复杂管理,我这里没有列出,方法一样,只是多了几道手续而已,有需要的请查阅相关资料或给我留言。
下面,我们查看用户djp01,imadmin的属性:
SQL& select username,initial_rsrc_consumer_group
&&2&&from dba_users
&&3&&where username in(upper('djp01'),upper('imadmin'))
------------------------------------------------------------
INITIAL_RSRC_CONSUMER_GROUP
------------------------------------------------------------
<font color="#、启用Oracle Resource Manager
通过设置init.ora或spfile.ora文件中的resource_manager_plan参数来进行启用,如下:
SQL& alter system set resource_manager_plan = membership_plan
System altered.
说明:如果需要停止,那么将其设置为空即可(resource_manager_plan=' ')。下面,我们查看当前的活动资源:
SQL& select name,is_top_plan
&&2&&from v$rsrc_plan
NAME& && && && && && && && && && && && && && && && && && && && & IS_TOP_PLA
---------------------------------------------------------------- ----------
MEMBERSHIP_PLAN& && && && && && && && && && && && && && && && &&&TRUE
该资源成功使用。
16:15 上传
点击文件名下载附件
下载积分: IT币 -1
5.61 MB, 下载次数: 7, 下载积分: IT币 -1
Managing Resource Allocation with Oracle Database 11g Resource Manager
上一篇:下一篇:
专业提供Oracle数据库服务、主机、存储、备份、中间件等相关技术支持服务,QQ号: 。
关注ITPUX技术网微信公众号:itpux_com&&,了解本站最新技术资料的分享.
欢迎加QQ群,提供超多高质量Oracle/Unix/Linux技术文档与视频教程的下载。
Oracle/Linux/Unix群1-4:& && && && &
Oracle/Linux/Unix群5-8:& && && &
备注:请勿重复加群,另请注明 from itpux
加群分享视频教程部分如下:
1、51CTO学院Oracle DBA数据库高级工程师培训(高薪就业.课程介绍)
2、Oracle DBA数据库高级工程师职业学习指南与职业规划视频课程(免费)
3、Oracle DBA数据库高级工程师培训视频课程(系列60多套+七大阶段+上千案例)
套餐视频地址:
学习线路图:
width:100%">
Oracle视频教程
扫二维码即刻了解ITPUX技术网最新技术资料!
联系邮箱有更好的想法,联系我们吧!发邮件到实例讲解Oracle中的connect和resource权限
首先用一个命令赋予user用户connect角色和resource角色:
grant connect,
运行成功后用户包括的权限:
CONNECT角色: --是授予最终用户的典型权利,最基本的
  ALTER SESSION --修改会话
  CREATE CLUSTER --建立聚簇
  CREATE DATABASE LINK --建立数据库链接
  CREATE SEQUENCE --建立序列
  CREATE SESSION --建立会话
  CREATE SYNONYM --建立同义词
  CREATE VIEW --建立视图
RESOURCE角色: --是授予开发人员的
  CREATE CLUSTER --建立聚簇
  CREATE PROCEDURE --建立过程
  CREATE SEQUENCE --建立序列
  CREATE TABLE --建表
  CREATE TRIGGER --建立触发器
  CREATE TYPE --建立类型
从dba_sys_privs里可以查到(注意这里必须以DBA角色登录):
select grantee,privilege from dba_sys_privs
where grantee='RESOURCE'
  GRANTEE PRIVILEGE
  ------------ ----------------------
  RESOURCE CREATE CLUSTER
  RESOURCE CREATE INDEXTYPE
  RESOURCE CREATE OPERATOR
  RESOURCE CREATE PROCEDURE
  RESOURCE CREATE SEQUENCE
  RESOURCE CREATE TABLE
  RESOURCE CREATE TRIGGER
  RESOURCE CREATE TYPE
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Oracle(3)
connect resource权限;&
  grant connect,&
  后用户包括的权限:&
  CONNECT角色: --是授予最终用户的典型权利,最基本的&
  ALTER SESSION --修改会话&
  CREATE CLUSTER --建立聚簇&
  CREATE DATABASE LINK --建立数据库链接&
  CREATE SEQUENCE --建立序列&
  CREATE SESSION --建立会话&
  CREATE SYNONYM --建立同义词&
  CREATE VIEW --建立视图&
  RESOURCE角色:
--是授予开发人员的&
  CREATE CLUSTER --建立聚簇&
  CREATE PROCEDURE --建立过程&
  CREATE SEQUENCE --建立序列&
  CREATE TABLE --建表&
  CREATE TRIGGER --建立触发器&
  CREATE TYPE --建立类型&
  从dba_sys_privs里可以查到:&
  SQL& select grantee,privilege from dba_sys_privs&
  2 where grantee='RESOURCE'&
  GRANTEE PRIVILEGE&
  ------------ ----------------------&
  RESOURCE CREATE CLUSTER&
  RESOURCE CREATE INDEXTYPE&
  RESOURCE CREATE OPERATOR&
  RESOURCE CREATE PROCEDURE&
  RESOURCE CREATE SEQUENCE&
  RESOURCE CREATE TABLE&
  RESOURCE CREATE TRIGGER&
  RESOURCE CREATE TYPE&
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10641次
排名:千里之外
转载:12篇
(1)(4)(7)(2)(6)(2)Oracle_角色_权限详细说明 - 推酷
Oracle_角色_权限详细说明
一、Oracle内置角色connect与resource的权限
grant connect,&
CONNECT角色: --是授予最终用户的典型权利,最基本的&
ALTER SESSION --修改会话&
CREATE CLUSTER --建立聚簇&
CREATE DATABASE LINK --建立数据库链接&
CREATE SEQUENCE --建立序列&
CREATE SESSION --建立会话&
CREATE SYNONYM --建立同义词&
CREATE VIEW --建立视图&
RESOURCE 角色: --是授予开发人员的&
CREATE CLUSTER --建立聚簇&
CREATE PROCEDURE --建立过程&
CREATE SEQUENCE --建立序列&
CREATE TABLE --建表&
CREATE TRIGGER --建立触发器&
CREATE TYPE --建立类型&
从dba_sys_privs里可以查到(注意这里必须以DBA角色登录):&
select grantee,privilege from dba_sys_privs&
where grantee='RESOURCE'&
=================================================&
一、何为角色?&
在前面的篇幅中说明权限和用户。慢慢的在使用中你会发现一个问题:如果有一组人,他们的所需的权限是一样的,当对他们的权限进行管理的时候会很不方便。因为你要对这组中的每个用户的权限都进行管理。 有一个很好的解决办法就是:角色。角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限。那么上述问题就很好处理了,只要第一次将角色赋给这一组用户,接下来就只要针对角色进行管理就可以了。&
以上是角色的一个典型用途。其实,只要明白:角色就是一组权限的集合。
下面分两个部分来对oracle角色进行说明。&
二、系统预定义角色&
预定义角色是在数据库安装后,系统自动创建的一些常用的角色。下介简单的介绍一下这些预定角色。角色所包含的权限可以用以下语句查询:&
sql&select * from role_sys_privs where role='角色名';&
1.CONNECT, RESOURCE, DBA&
这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。
oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。 将来的版本中这些角色可能不会作为预定义角色。&
2.DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE, SELECT_CATALOG_ROLE&
这些角色主要用于访问数据字典视图和包。&
3.EXP_FULL_DATABASE, IMP_FULL_DATABASE&
这两个角色用于数据导入导出工具的使用。&
4.AQ_USER_ROLE, AQ_ADMINISTRATOR_ROLE&
AQ:Advanced Query。这两个角色用于oracle高级查询功能。&
5.SNMPAGENT&
用于oracle enterprise manager和Intelligent Agent&
6.RECOVERY_CATALOG_OWNER&
用于创建拥有恢复库的用户。关于恢复库的信息,参考oracle文档《Oracle9i User-Managed Backup and Recovery Guide》&
7.HS_ADMIN_ROLE&
A DBA using Oracle's heterogeneous services feature needs this role to access appropriate tables in the data dictionary.&
二、管理角色&
1.建一个角色&
sql&create role role1;&
2.授权给角色&
sql&grant create any table,create procedure to role1;&
3.授予角色给用户&
sql&grant role1 to user1;&
4.查看角色所包含的权限&
sql&select * from role_sys_&
5.创建带有口令以角色(在生效带有口令的角色时必须提供口令)&
sql&create role role1 identified by password1;&
6.修改角色:是否需要口令&
sql&alter role role1&
sql&alter role role1 identified by password1;&
7.设置当前用户要生效的角色&
(注:角色的生效是一个什么概念呢?
假设用户a有b1,b2,b3三个角色,那么如果b1未生效,则b1所包含的权限对于a来讲是不拥有的,
只有角色生效了,角色内的权限才作用于用户,最大可生效角色数由参数MAX_ENABLED_ROLES设定;
在用户登录后,oracle将所有直接赋给用户的权限和用户默认角色中的权限赋给用户。)&
sql&set role role1;//使role1生效&
sql&set role role,role2;//使role1,role2生效&
sql&set role role1 identified by password1;//使用带有口令的role1生效&
sql&//使用该用户的所有角色生效&
sql&//设置所有角色失效&
sql&set role all except role1;//除role1外的该用户的所有其它角色生效。&
sql&select * from SESSION_ROLES;//查看当前用户的生效的角色。&
8.修改指定用户,设置其默认角色&
sql&alter user user1 default role role1;&
sql&alter user user1 default role all except role1;&
详见oracle参考文档&
9.删除角色&
sql&drop role role1;&
角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。&
============================================================&
一、权限分类:&
系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。&
实体权限:某种权限用户对其它用户的表或视图的存取权限。(是针对表或视图而言的)。&
二、系统权限管理:&
1、系统权限分类:&
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。&
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。&
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。&
对于普通用户:授予connect, resource权限。&
对于DBA管理用户:授予connect,resource, dba权限。&
2、系统权限授权命令:&
[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]&
授权命令:SQL& grant connect, resource, dba to 用户名1 [,用户名2]...;&
[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]&
查询用户拥有哪里权限:&
SQL& select * from dba_role_&
SQL& select * from dba_sys_&
SQL& select * from role_sys_&
删除用户:SQL& drop user 用户名 //加上cascade则将用户连同其创建的东西全部删除&
3、系统权限传递:&
增加WITH ADMIN OPTION选项,则得到的权限可以传递。&
SQL& grant connect, resorce to user50 //可以传递所获权限。&
4、系统权限回收:系统权限只能由DBA用户回收&
命令:SQL& Revoke connect, resource from user50;&
1)如果使用WITH ADMIN OPTION为某个用户授予系统权限,那么对于被这个用户授予相同权限的所有用户来说,取消该用户的系统权限并不会级联取消这些用户的相同权限。
2)系统权限无级联,即A授予B权限,B授予C权限,如果A收回B的权限,C的权限不受影响;系统权限可以跨用户回收,即A可以直接收回C用户的权限。&
三、实体权限管理&
1、实体权限分类:select, update, insert, alter, index, delete, all //all包括所有权限 ,execute //执行存储过程权限&
SQL& grant select, update, insert on product to user02;&
SQL& grant all on product to user02;&
SQL& select * from user01.&
// 此时user02查user_tables,不包括user01.product这个表,但如果查all_tables则可以查到,因为他可以访问。&
2. 将表的操作权限授予全体用户:&
SQL& grant all
// public表示是所有的用户,这里的all权限不包括drop。&
[实体权限数据字典]:&
SQL& select owner, table_name from all_ // 用户可以查询的表&
SQL& select table_name from user_ // 用户创建的表&
SQL& select grantor, table_schema, table_name, privilege from all_tab_ // 获权可以存取的表(被授权的)&
SQL& select grantee, owner, table_name, privilege from user_tab_ & // 授出权限的表(授出的权限)&
3. DBA用户可以操作全体用户的任意基表(无需授权,包括删除):&
DBA用户:&
SQL& Create table stud02.product(&
id number(10),&
name varchar2(20));&
SQL& drop table stud02.&
SQL& create table stud02.employee&
select * from scott.&
4. 实体权限传递(with grant option):&
SQL& grant select, update on product to user02 // user02得到权限,并可以传递。&
5. 实体权限回收:&
SQL&Revoke select, update on product from user02; //传递的权限将全部丢失。&
1)如果取消某个用户的对象权限,那么对于这个用户使用WITH GRANT OPTION授予权限的用户来说,同样还会取消这些用户的相同权限,也就是说取消授权时级联的。&
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多关于 oracle 回收 修改权限 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信