您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第11章oracle用户、权限和角色
1OracleSQL开发基础2课程结构内容课时(H)第一章Oracle数据库基础2.5第二章编写简单的查询语句1.5第三章限制数据和对数据排序2第四章单行函数4第五章多表查询4第六章分组函数3第七章子查询4第八章数据操作与事务控制4第九章表和约束4第十章其他数据库对象43第十一章用户、权限和角色目标:本章旨在向学员介绍:1)用户的概念及管理2)权限的概念及管理3)角色的概念及管理时间:2学时教学方法:讲授ppt+上机练习4本章要点•用户的概念及管理•权限的概念及管理•角色的概念及管理5第十一章用户、权限和角色用户、权限和角色:11.1管理用户11.2权限11.3角色611.1管理用户•用户–用户是数据库的使用者。用户相关的信息包括用户的用户名称和密码、用户的配置信息(包括用户的状态,用户的默认表空间等)、用户的权限、用户对应的方案中的对象等。–用户一般是由DBA来创建和维护的。创建用户后,用户不可以执行任何Oracle操作(包括登陆),只有赋予用户相关的权限,用户才能执行相关权限允许范围内的相关操作。对用户授权可以直接授权,也可以通过角色来间接授权。711.1.1创建和修改用户语法1/11•创建用户–创建用户语法–Deafulttablespace用户的默认表空间–Temporarytablespace用户的临时表空间–Quotaon表示允许该用户在表空间中使用的空间总大小。可以设置多个不同的表空间–执行该语句的用户需要有“创建用户”的权限,一般为系统的DBA用户。CREATEUSERuserIDENTIFIEDBYpassword[defaulttablespace默认表空间名temptablespace临时表空间名quota配额大小on表空间名]811.1.1创建和修改用户语法2/11•创建用户示例–以SYSTEM用户登陆。–用户被创建后,没有任何权限,包括登陆。CREATEUSERtestIDENTIFIEDBYtest;connsystem请输入口令:******已连接。911.1.1创建和修改用户语法3/11•登陆权限–用户如果想登陆,至少需要有“CREATESESSION”的权限。GRANTCREATESESSIONTOtest;1011.1.1创建和修改用户语法4/11•用户建表相关权限–对新建用户,默认情况,用户对于其所拥有对象具有所有的数据的增删改查权限,但没有定义的权限(如创建表等)。用户要想创建对象,需要有对象的创建权限CREATETABLE、CREATESEQUENCE等–以test用户身份建表:CREATETABLEemp1(idNUMBER,last_nameVARCHAR2(20),salaryNUMBER);返回权限不足。1111.1.1创建和修改用户语法5/11•用户建表相关权限–赋予test用户的创建表的权限。–test用户身份执行建表操作:–建表的相关权限:•CREATETABLE•空间使用权限,需要DBA来分配。CREATETABLEemp1(idNUMBER,last_nameVARCHAR2(20),salaryNUMBER);返回错误“表空间‘SYSTEM’中无权限”Connsystem/oracle;GRANTCREATETABLETOtest;1211.1.1创建和修改用户语法6/11•用户空间分配和管理:–给用户分配表空间的配额;–给用户指定一个默认的表空间,如果没有特殊指定,则对象都是在该用户默认表空间中创建的。如果不指定默认表空间,则系统缺省默认表空间是SYSTEM,默认情况下,SYSTEM表空间也没有给任何普通用户分配配额(SYS和SYSTEM用户除外。–查询数据库表空间。以SYSTEM用户身份:SELECT*FROMv$tablespace;1311.1.1创建和修改用户语法7/11•修改默认表空间和配额–语法ALTERUSER用户名QUOTA10mON表空间名;ALTERUSER用户名DEFAULTTABLESPACE默认表空间名;1411.1.1创建和修改用户语法8/11•修改默认表空间和配额–以SYSTEM用户身份执行:–以test用户身份执行–以SYSTEM用户身份执行,给test分配配额。ALTERUSERtestQUOTA10mONexample;CREATETABLEemp1(idNUMBER,last_nameVARCHAR2(20),salaryNUMBER);返回错误“表空间‘EXAMPLE’中无权限”。ALTERUSERtestDEFAULTTABLESPACEexample;1511.1.1创建和修改用户语法9/11•修改默认表空间及配额–以test用户身份执行建表命令。–上例显示了test用户在表空间“example”上分配了10m的空间使用权限,用户在该表空间上只有10M的使用权限,如果超过该限度,用户的相关操作执行失败。CREATETABLEemp1(idNUMBER,last_nameVARCHAR2(20),salaryNUMBER);表已创建。1611.1.1创建和修改用户语法10/11•修改用户密码–语法–DBA可以修改任何普通用户的密码,而不需要知道用户的旧密码。–在sqlplus下执行password命令来修改登陆用户自己的密码,提示会输入旧密码和新密码。ALTERUSERuserIDENTIFIEDBY新密码;1711.1.1创建和修改用户语法11/11•用户状态–用户状态:OPEN、EXPIRED、LOCKED。•OPEN表正常状态,为用户帐号初始创建后状态。•EXPIRED表示密码过期,用户下次登陆的时候需要修改密码;•LOCKED表示该帐户已被锁定,不能执行任何Oracle相关操作(即使拥有相关的权限)。–状态管理语句:ALTERUSERuserPASSWORDEXPIRE;--密码过期ALTERUSERuserACCOUNTLOCK[UNLOCK];--帐户锁定/解锁1811.1.2删除用户•删除用户–删除用户语法–CASCADE表示系统先自动删除该用户下的所有对象,然后再删除该用户的定义。–已经登陆的用户是不允许被删除的。DROPUSERuser[CASCADE]1911.1.3查询用户信息•数据字典视图–与用户信息相关的数据字典视图有•DBA_USERS是关于用户的属性信息•DBA_TS_QUOTAS是用户的相关表空间的配额信息。–数据字典视图一般是以SYSTEM用户身份执行:SELECTusername,account_status,default_tablespaceFROMdba_users;SELECT*FROMdba_ts_quotas;20第十一章用户、权限和角色用户、权限和角色:11.1管理用户11.2权限11.3角色2111.2.1系统权限概念及分类1/6•权限管理–Oracle中存在两种权限•系统权限(SYSTEMPRIVILEGE):允许用户在数据库中执行指定的行为,一般可以理解成比较通用的一类权限。•对象权限(OBJECTPRIVILEGE):允许用户访问和操作一个指定的对象,该对象是一个确切存储在数据库中的命名对象。2211.2.1系统权限概念及分类2/6•系统权限–包含100多种系统权限,其主要作用:•执行系统端的操作,比如CREATESESSION是登陆的权限,CREATETABLESPACE创建表空间的权限•管理某类对象,比如CREATETABLE是用户建表的权限•管理任何对象,比如CREATEANYTABLE,ANY关键字表明该权限“权力”比较大,可以管理任何用户下的表,所以一般只有DBA来使用该权限,普通用户是不应该拥有该类权限的。2311.2.1系统权限概念及分类3/6•表的系统权限–CREATETABLE(建表)–CREATEANYTABLE(在任何用户下建表)–ALTERANYTABLE(修改任何用户的表的定义)–DROPANYTABLE(删除任何用户的表)–SELECTANYTABLE(从任何用户的表中查询数据)–UPDATEANYTABLE(更改任何用户表的数据)–DELETEANYTABLE(删除任何用户的表的记录)。2411.2.1系统权限概念及分类4/6•索引及会话系统权限–索引:•CREATEANYINDEX(在任何用户下创建索引)•ALTERANYINDEX(修改任何用户的索引定义)•DROPANYINDEX(删除任何用户的索引)–会话:(SESSION)•CREATESESSION(创建会话,登陆权限)•ALTERSESSION(修改会话)2511.2.1系统权限概念及分类5/6•表空间系统权限–表空间•CREATETABLESPACE(创建表空间)•ALTERTABLESPACE(修改表空间)•DROPTABLESPACE(删除表空间)•UNLIMITEDTABLESPACE(不限制任何表空间的配额)–注意:表空间的所有权限都不应该分配给普通用户。2611.2.1系统权限概念及分类6/6•系统特权–系统特权权限SYSDBA和SYSOPER•SYSOPER的权限:启动停止数据库,恢复数据库等•SYSDBA的权限:所有SYSOPER功能的管理权限;创建数据库等权限。–注意:以系统特权权限登陆的用户一般都是特权用户,或称为超级用户。以SYSDBA身份登陆的用户在ORACLE中是权限最大的用户,可以执行数据库的所有操作。这些特权权限是不应该随便赋予给普通用户的。2711.2.2授予和回收系统权限1/3•系统权限授予–授予用户系统权限语法–sys_priv_list:是一个系统特权的列表,由逗号分隔–User_list:是一个用户的列表,由逗号分隔–WITHADMINOPTION:允许权限的接受者再把此特权授予其他用户。GRANTsys_priv_listTOuser_list[WITHADMINOPTION]2811.2.2授予和回收系统权限2/3•系统权限授予–授予test用户CREATESESSION权限–以test身份执行CREATESESSION权限管理:GRANTcreatesessionTOneu;GRANTcreatesessionTOtestWITHADMINOPTION;2911.2.2授予和回收系统权限3/3•系统权限回收–回收系统权限语法:REVOKE系统权限列表FROMuser列表;–只能回收使用GRANT授权过的权限,权限被回收后,用户就失去了原权限的使用权和管理权(如果有管理权限的话)。–注意:使用WITHADMINOPTION选项授予的权限在回收时候的级联回收策略如下:•如果用户A授予权限给用户B,同时带有选项WITHADMINOPTION,用户B又把该权限赋予给用户C;如果此时用户A把权限从用户B处收回,那么用户B给予出去的权限(用户C对该权限的使用权)是否还继续存在。在系统权限的管理中,ORACLE的策略是继续保留权限,用户C继续拥有该权限的使用权。•也就是说,系统权限不会级联回收。所以在权限回收时必须将获权用户的权限一一回收。3011.2.3对象权限概念及分类1/3•对象权限–对象权限是在指定的表、视图、序列或过程上执行指定动作的权限或权利。–每个对象都有一个特殊的可授予的权限集。3111.2.3对象权限概念及分类2/3•对象权限–对象权限的种类不是很多,但数量较大,因为具体对象的数量很多。–对象权限的分类权限分类﹨对象类型表(Table)视图(View)序列(Sequence)存储(Procedure)SELECT(选择)○○○INSERT(插入)○○UPDATE(更改)○○DELETE(删除)○○ALTER(修改)○○INDEX(索引)○REFERENCE(引用)○○EXECUTE(执行)○3211.2.3对象权限概念及分类3/3•对象权限–不同的对象有不同的对象权限–对象的所有者自动拥有包含在该用户的方案中的所有对象的所有权限–对象的所有者能够给予指定的权限到其他的帐户或者角色3311.2.4授予和回收对
本文标题:第11章oracle用户、权限和角色
链接地址:https://www.777doc.com/doc-14280 .html