TP7 管理用户权限及角色

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第十章管理用户权限及角色10.1系统权限的授予与撤消对于系统权限而言:开发者具有创建和删除数据对象的权限:CLUSTER,PROCEDURE,ABLE,VIEW,TRIGER,FUNCTION,PUBLICSYNONYM,DATABASELINK,PUBLICSYNONYM,SEQUENCE,SNAPSHOTP,TYPE,LIBRARYDBA具有上述数据对象的any权限,即在其他用户对象模式下,创建上述对象和删除上述对象的权限。此外,还具有对用户和角色的管理权限。此外,DBA还具有对数据库的维护权限。上述权限详见教材152-154页。10.2对象权限的授权与撤消一般情况下,我们先将对象的访问权授予某个角色,然后把角色授予用户一般来说,如果系统并不复杂时常采用无角色的授权。建议采用角色授权与用户授予角色的授权方式来管理系统。10.2对象权限的授予与撤消GRANTsystem_privilege|roleTOuser|role|PUBLIC[WITHADMINOPTION]GRANTobject_privilege|ALLcolumnONschema.objectFROMuser|role|PUBLICWITHGRANTOPTION10.2对象权限的授予与撤消object_privilege:对象的权限,可以是:ALTERDELETEEXECUTEINDEXINSERTREFERENCESSELECTUPDATE10.2对象权限的授予与撤消例1:GRANTINSERT,UPDATEONsalesTOlarryWITHGRANTOPTION;例2GRANTALLTOPUBLIC;10.2对象权限的授予与撤消例3:GRANTselectONdeptTOstu10,stu11;例4:GRANTselect,insert(empno,ename),update(ename)ONempTOscottWITHGRANTOPTION;对象特权的回收:例1:REVOKEselectONdeptFROMstu10,stu11;例2:REVOKEallONempFROMscott;10.2对象权限的授予与撤消本章难点:权限的级联授予级联授权通过参数来实现,它们是:系统权限:withadminoption对象权限:withgrantoptionGRANTAACBBREVOKE回收对象特权的连锁反映分析:GRANTAACBB?REVOKE回收系统特权的连锁反映分析:10.2对象权限的授予与撤消实践是检验真理的唯一标准课堂实验:对象级联授权的实验行命令回收系统特权或角色:REVOKEFROM系统特权名角色名用户名角色名public回收对象特权的连锁反映分析:ACBRESULTACB10.2对象权限的授予与撤消10.3系统权限的授予与撤消GRANTsystem_privilege|roleTOuser|role|PUBLIC[WITHADMINOPTION]回收系统特权的连锁反映分析:GRANTABBCCC10.3系统权限的授予与撤消回收系统特权的连锁反映分析:10.3系统权限的授予与撤消REVOKECAB?CACAB10.3系统权限的授予与撤消实践是检验真理的唯一标准课堂实验:系统权限级联授权的实验回收系统特权的连锁反映分析:ACBCRESULTBC10.3系统权限的授予与撤消与特权有关的数据字典视图:•DBA_SYS_PRIVS•TABLE_PRIVILEGES•COLUMN_PRIVILEGES•ALL/USER_TAB_PRIVS•ALL/USER_TAB_PRIVS_MADE•ALL/USER_TAB_PRIVS_RECD•ALL/USER_COL_PRIVS•ALL/USER_COL_PRIVS_MADE•ALL/USER_COL_PRIVS_RECD10.4权限的授予与撤消10.5角色与授权角色是一个数据库实体,它包括一组权限。即角色是包括一个或多个权限的集合。它不被哪个用户拥有,它只能授予某些用户。这些角色不要与用户名相同。根据各个用户的情况(比如他们所担当的工作)来授予不同的角色。10.5角色与授权无角色管理的授权示意图用户特权10.5角色与授权使用角色管理的授权示意图用户特权角色10.5角色与授权权限对象AlterDeleteExecuteIndexInsertReadReferenceSelectUpdateDirectorynononononoyesnononofunctionnonoyesnonononononoProcedurenonoyesnonononononoPackagenonoyesnonononononoDBObjectnonoyesnonononononoLibrarynonoyesnonononononoOperatornonoyesnonononononoSequenceyesnoyesnonononoyesnoTableyesyesnoyesyesnoyesyesyesTypenonoyesnonononononoViewnoyesnonoyesnonoyesyes对象权限列表:10.5角色与授权角色名创建脚本说明CONNECTSQL.BSQ包括下面权限:ALTERSESSION,CREATECLUSTER,CREATEDATABASELINK,CREATESEQUENCE,CREATESESSION,CREATESYNONYM,CREATETABLE,CREATEVIEWRESOURCESQL.BSQI包括下面权限:CREATECLUSTER,CREATEINDEXTYPE,CREATEOPERATOR,CREATEPROCEDURE,CREATESEQUENCE,CREATETABLE,CREATETRIGGER,CREATETYPEDBASQL.BSQ所有的管理权限常见的系统角色10.5角色与授权1.CREATEROLE语法CREATEROLErole[[NOTIDENTIFIED|IDENTIFIED][BYpassword|EXTERNALLY|GLOBALLY];role角色名IDENTIFIEDBYpassword角色口令IDENTIFIEDBYEXETERNALLY角色名在操作系统下验证。IDENTIFIEDGLOBALLY用户是ORACLE安全域中心服务器来验证,此角色有全局用户来使用。10.5角色与授权示例:CREATEROLEvendorIDENTIFIEDGLOBALLY;CREATEROLEtellerIDENTIFIEDBYcashflow;10.5角色与授权2给角色授权一旦角色建立完成,就可以对角色进行授权。给角色授权用GRANT语句实现。如果系统管理员具有GRANT_ANY_PRIVILEGE权限,则可以对某个角色进行授权。示例:GRANTCREATESESSION,CREATEDATABASELINKtoManager;10.5角色与授权3授予用户权限与角色对用户进行授权,包括给用户授予系统预定义的权限,也包括自定义的角色。用GRANT命令来实现给用户的权限与角色的授予。例1.下面语句将系统权限CREATESESSION和ACCTS_PAY角色给JWARD用户:GRANTCREATESESSION,accts_payTOjward;例2.下面语句将SELECT,INSERT和DELETE授给jfee,tsmith用户:GRANTSELECT,INSERT,DELETEONempTOjfee,tsmith;10.5角色与授权删除角色只要具有相应权限,就可以用DROPROLE命令删除角色。如:DROPROLEManager;10.5角色与授权角色的查询1.确定角色的权限授予用户某个角色,则角色的权限也就授予了用户,管理员需了解角色被授予那些权限,以便知道哪些角色是够用,或者应撤消哪些权限。ROLE_TAB_PRIVS授予角色的对象权限ROLE_ROLE_PRIVS授予另一角色的角色ROLE_SYS_PRIVS授予角色的系统权限10.5角色与授权2.确定用户所授予的权限为了维护用户,必须知道哪写ORACLE帐户被授予哪些权限,这些权限可能是直接授予,也可能是通过角色授予的。DBA_TAB_PRIVS包含直接授予用户帐户的对象权限DBA_ROLE_PRIVS包含授予用户帐户的角色DBA_SYS_PRIVS包含授予用户帐户的系统权限10.6有关的数据字典与用户、角色权限有关的数据字典:DBA_USERS实例中有效的用户及相应信息。DBA_TS_QUOTAS用户对表空间的使用限制信息。USER_RESOURCE_LIMITS用户资源的使用限制信息。DBA_PROFILES系统所有资源文件信息。RESOURCE_COST系统每个资源的代价。V$SESSION实例中会话的信息。V$SESSTAT实例中会话的统计。V$STATNAME实例中会话的统计代码名字。DBA_ROLES实例中已经创建的角色的信息。ROLE_TAB_PRIVS授予角色的对象权限。ROLE_ROLE_PRIVS授予另一角色的角色。ROLE_SYS_PRIVS授予角色的系统权限。DBA_ROLE_PRIVS授予用户和角色的角色。SESSION_ROLES用户可用的角色的信息。如何查看oracle用户权限1.oracle用户查看自己的权限和角色select*fromuser_tab_privs;select*fromuser_role_privs;2.sys用户查看任一用户的权限和角色select*fromdba_tab_privs;select*fromdba_role_privs;oracle中查看用户权限1.查看所有用户:select*fromdba_user;select*fromall_users;select*fromuser_users;2.查看用户系统权限:select*fromdba_sys_privs;select*fromall_sys_privs;select*fromuser_sys_privs;3.查看用户对象权限:select*fromdba_tab_privs;select*fromall_tab_privs;select*fromuser_tab_privs;4.查看所有角色:select*fromdba_roles;5.查看用户所拥有的角色:select*fromdba_role_privs;select*fromuser_role_privs;10.7锁的定义及管理掌握锁定的概念及其实现用法10.7锁的定义及管理允许或拒绝资源访问的一种机制资源可以是特定行或整个表控制对数据的并发访问防止在同时访问相同资源的用户之间出现破坏性的交互操作锁定类型―行级锁―表级锁行级锁―行被排他锁定―在某行的锁被释放之前,其他用户不能修改此行―使用commit或rollback命令释放锁―Oracle通过使用INSERT、UPDATE和SELECT…FORUPDATE语句自动获取行级锁10.7锁的定义及管理SELECT…FORUPDATE子句―在表的一行或多行上放置排他锁―用于防止其他用户更新该行―可以执行除更新之外的其他操作10.7锁的定义及管理FORUPDATEWAIT子句―Oracle9i中的新增功能―防止无限期地等待锁定的行―允许对锁的等待时间进行更多的控制―等待间隔必须指定为数值文字―等待间隔不能是表达式、赋值变量或PL/SQL变量10.7锁的定义及管理表级锁―保护表的数据―在多个用户同时访问数据时确保数据的完整性―可以设置为三种模式:共享、共享更新和排他语法:Locktabletable_nameinmode;10.7锁的定义及管理共享锁―锁定表―仅允许其他用户执行查询操作―不能插入、更新和删除―多个用

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功