Oracle10g权限与角色管理数据库权限分类Oracle10g用户权限类型Oracle10g用户权限管理系统权限实体权限CREATESESSION:连接到数据库CREATETABLE:建表ANY特权:查询、修改、删除任意表…ALTERDELETEEXECUTEINDEXINSERTREFERENCESSELECTUPDATE系统权限管理系统权限通过授予系统权限,允许用户执行指定的数据库操作执行某种类型的命令,必须有相应的系统权限。系统权限不是针对某个特定的用户的实体或结构,而是对一个特定操作或一类操作。ORACLE拥有120多种不同类型的系统权限,每个系统权限允许用户执行一个特定的数据库操作或一组数据库操作。ORACLEAccessPrivilegeNewUsersOracle系统权限(1)Oracle系统权限(2)E_mail:tengyc@263.net9系统权限授权命令:WITHADMINOPTION:•可以将系统特权授予任意用户或角色•可以从任意用户或角色处收回系统特权•可以使用WITHADMINOPTION授予系统特权授予系统特权:GRANT系统特权名TO用户名角色名PUBLIC,SYS用户SYS用户SYSTEM用户E_mail:tengyc@263.net13系统权限回收REVOKE系统权限名FROM用户名角色名PUBLIC,回收系统权限:ABC实体权限管理E_mail:tengyc@263.net15实体权限概述:使用实体权限限制用户对于实体的存取只有授予实体权限后,才允许用户对指定的表、视图、序列生成器或存储过程进行操作。实体权限的类型随实体而不同。实体权限分类:TABLEVIEWSEQUENCEPROCEDURESNAPSHOTSALTERDELETEEXECUTEINDEXINSERTREFERENCESSELECTUPDATEE_mail:tengyc@263.net17实体权限命令:GRANT权限名ON实体名TO用户名角色名PUBLIC,E_mail:tengyc@263.net18实体权限回收:REVOKE特权(列)ON对象FROM用户名角色名PUBLIC,ABC收回实体权限的级联反应:角色管理什么是角色:角色是可以授予用户或其他角色的一组相关的权限组合。使用角色可以简化权限管理。Oracle数据库角色管理E_mail:tengyc@263.net22角色管理(Role)角色中可以包含系统权限、实体权限。不被任何用户拥有,也不属于任何用户实体。可以用角色为用户授权。可以将角色授予其他角色。可以对于所授的用户生效或失效。可以要求使之生效的口令。角色的描述被存储在数据字典中。E_mail:tengyc@263.net23为什么要使用角色?简化权限管理1.用一条语句可以授予或回收许多权限。2.可以把角色授予用户,而不必对用户逐一授权。3.在多用户、多实体下简化权限管理。实现权限动态管理1.随着应用的变化可以改变角色的权限。2.通过改变角色,而改变多个用户权限。权限可用性可以使权限失效或生效。系统预定义角色系统预定义角色系统预定义角色DBA系统预定义角色DBA创建角色CREATEROLEroleIDENTIFIEDBYpasswordNOTIDENTIFIED创建角色SQLcreateroletax_members;为角色授权:SQLgrantcreatesession,createtable,createviewtotax_members为用户授于角色:SQLgranttax_memberstotax01;E_mail:tengyc@263.net30修改角色修改角色可以改变使角色生效的方式指明授予用户的角色,不需要被ORACLE确认就生效。指明授予用户的角色,必须经过ORACLE确认才生效。指明使角色生效的口令。修改角色ALTERROLEroleIDENTIFIEDBYpasswordNOTIDENTIFIED修改角色SQLalterroletax_membersidentifiedbytax_members;Rolealtered.SQLalterrolemanagernotidentified;Rolealtered.E_mail:tengyc@263.net33角色失效或生效作用1.使角色生效或失效可以使授予给用户的有关权限有用或无用。2.可以使以前授予的角色失效或生效。3.一个失效的角色对用户使无用的4.可以要求有口令确认。SETROLEroleIDENTIFIEDBYpasswordALLEXCEPTRoleNONE使角色失效或生效SQLsetrolenone;Roleset.使角色失效或生效失效:SQLsetroleconnect,tax_membersidentifiedbytax_members;Roleset.SQLsetroleallexcepttax_members;Roleset.SQLsetroleall;角色失效或生效:生效修改用户使角色失效或生效修改用户使角色失效或生效SQLalterusertax01defaultrolenone;Useraltered.失效:修改用户使角色失效或生效将用户tax01的缺省角色全部生效:SQLalterusertax01defaultroleall;除tax_members角色外,其他角色设置为生效:SQLalterusertax01defaultroleallexcepttax_members;