Oracle数据库基础应用03

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

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

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

资源描述

3.0第三章Oracle数据库安全3.0目标1.了解:Oracle数据库的基本安全体系,基本的数据库管理知识,数据字典。2.理解:Oracle数据库安全体系的基本元素及相互关联,Oracle数据库管理与应用的相关知识。3.掌握:数据库安全基本要素如:账户、权限、角色。3.0概述、专业术语1.在当今信息领域,数据库的安全性是至关重要的。2.本章从Oracle数据库的角度讲解信息领域中数据库的安全要素:数据库账户、密码、权限控制、角色控制等1.术语词汇表2.定义在此章节中使用的术语3.0Oracle用户管理•当使用Oracle客户端访问Oracle数据库时必须提供密码和帐号用户(User)是定义在数据库中的一个名称,是Oracle的基本访问控制机制。3.0Oracle用户管理•用户与模式SCOTTSYSTEM模式SCOTT模式SYSTEM模式(Schema)是用户所拥有对象的集合用户与模式是一一对应的关系,并且二者名称相同3.0•建立用户:数据库验证Oracle中的用户主要由DBA来创建,使用CREATEUSER命令其他用户需要有CREATEUSER系统权限才能创建新用户Oracle采用数据库验证方式3.01、生成表空间CreatetablespaceaxuDatafile‘f:\aa.dbf’size20m2、向表空间添加一个表格Createtabletemp(idnumber,Namevarchar2(10),)Tablespaceaxu;3、执行命令Droptablespaceaxu;3.0如果无system表空间权限,则1Alteruser用户名quota10monsystem2Grantunlimitedtablespaceto用户名;3.0Oracle用户管理•建立用户的语法:CREATEUSER自定义用户名IDENTIFIEDBY帐户密码DEFAULTTABLESPACE表空间名TEMPORARYTABLESPACE临时表空间名QUOTA使用空间大小ON表空间名;•建立用户示例:CREATEUSERtestIDENTIFIEDBYtestDEFAULTTABLESPACEks32T01TEMPORARYTABLESPACEks32t01_tempQUOTA3mONks32t01;3.0Oracle用户管理•连接到数据库执行初步操作--给数据库帐户授予会话权限SQLconnectsystem/managerSQLgrantcreatesessiontotestSQLconnecttest/test新建的用户在创建初无任何权限,需要授予createsession权限才能连接到Oracle--给数据库帐户授予createtable的权限SQLconnectsystem/managerSQLgrantcreatetabletotestSQLconnecttest/testSQLcreatetable……3.0Oracle用户管理•特权用户:具有特殊权限的数据库用户(如:SYSDBA或SYSOPER)•sysoper没有创建数据库的权限而sysdba有,两者就差这么一点。•特权用户主要执行数据库维护操作:启动和关闭OracleServer建立数据库备份和恢复数据库等3.0Oracle用户管理•修改用户(必须拥有alteruser系统权限)--修改用户口令CONNECTtest/test@testALTERUSERtestIDENTIFIEDBYtest;--修改用户空间配额sqlplussystem/manager@testSQLALTERUSERtestQUOTA10mONks32t01用户的信息一般由DBA来修改用户口令可以由用户自身修改3.0Oracle用户管理•删除用户DROPUSERtest;删除用户一般是由DBA来完成.如果模式中包含有数据库对象,则必须带有CASCADE选项.oracle将删除所有对象,然后再删除用户,如果其他用户对象比如过程,包或视图需要参照此用户的对象,将被标志为非法,当对象被删除后,空间释放给表空间.DROPUSERtestCASCADE;3.0管理权限•权限(privilege):执行特定类型的SQL命令或访问其他模式对象的权利。它限制用户可执行的操作。•权限包括:系统权限(systemprivilege)对象权限(objectprivilege)3.0系统权限•系统权限:执行特定类型SQL命令的权限权限说明createtablespace创建表空间的权限createuser创建用户的权限createsession创建会话的权限createrole创建角色的权限createtable为用户创建表的权限createview为用户创建视图的权限createprocedure为用户创建存储过程的权限createsequence为用户创建序列的权限createsynonym为用户创建同义词的权限createanytable为任意用户创建表的权限createanyview为任意用户创建视图的权限…………Oracle中包含了一类ANY系统权限,当用户具有该类权限时,可以在任何模式中执行相应的操作3.0系统权限•初始用户没有任何权限,需要由DBA(或有DBA权限的用户)授予系统权限•授予系统权限语法:grant系统权限列表(多个权限用“,”分隔)to用户sqlplussystem/manager@testSQLgrantcreatesession,createtabletotest;•授权示例:3.0系统权限•回收系统权限revoke系统权限列表from用户sqlplussystem/manager@testSQLrevokecreatesession,createtablefromtest;•回收权限示例:3.0系统权限•显示当前用户和当前会话的系统权限select*fromuser_sys_privsGRANTEEPRIVILEGE-----------------------------------------------TESTCREATESESSIONTESTCREATETABLETESTCREATECUSTERTESTCREATEVIEWTESTCREATESYNONYMTESTCREATESEQUENCETESTCREATEUSER显示当前用户权限(user_sys_privs)select*fromsession_privsPRIVILEGE-------------------------------CREATESESSIONCREATETABLECREATECUSTERCREATEVIEWCREATESYNONYMCREATESEQUENCECREATEUSER显示当前会话权限(session_privs)GRANTEE:权限拥有者PRIVILEGE:权限名称3.0对象权限•对象权限:访问其它模式对象的权利。它用于控制一个用户对另一个用户的访问A帐户B帐户B.TX访问表B.TX权限?Oracle中常用对象权限:SELECTINSERTUPDATEDELETEEXECUTE--执行存储过程的权限3.0对象权限•授予对象权限GRANT权限列表ON对象TO帐户;•示例:SQLconnectb/b–-连接B帐户SQLGRANTSELECT,INSERTONTXTOA;3.0对象权限•回收对象的权限REVOKE权限列表ON对象FROM帐户;•示例:connectb/b–-连接B帐户REVOKESELECT,INSERTONTXFROMA;3.0对象权限•显示当前用户所具有的对象权限select*fromuser_tab_privsGRANTEEOWNERTABLE_NAMEGRANTORPRIVILEGE---------------------------------------------------------------------------------------------TESTSYSTEMTEMPTESTSELECT3.0管理角色•角色:权限的集合。角色的目的:简化权限管理。ABC权限X权限Y权限Z权限HABC权限X角色权限Y权限Z权限H四种权限授予三个账户需要执行大量的授权过程步骤:1.创建角色,把单个的权限赋值给角色2.把角色赋给不同的用户3.0•Oracle预定义角色CONNECT权限ALTERSESSIONCREATESESSIONCREATECLUSTERCREATEDATABSELINKCRAETESEQUENCECREATESYNONYMCREATETABLECREATEVIEWRESOURCE权限CREATEINDEXTYPECREATEOPERATORCREATEPROCEDURECREATETRIGGERCREATETYPECREATECLUSTERCREATETABLEDBA拥有所有系统权限权限3.0Connectresource权限3.0管理角色•创建角色CREATEROLE自定义角色名字;•示例:CREATEROLEtest_role;3.0管理角色•给角色授权GRANT权限列表TO自定义角色名字;•示例:GRANTCRAETESESSION,CREATETABLETOtest_role;•使用角色给用户授权GRANT角色列表TO自定义用户名字;•示例:GRANTtest_roleTOtest;3.0管理角色•删除角色DROPROLE自定义角色名字;•示例:DROPROLEtest_role;3.0数据字典•数据字典是Oracle的最重要组成部分,它用于提供数据库的相关信息。•数据字典主要是由表和视图组成•数据字典中的表是不能直接被访问的,但可以访问数据字典中的视图•数据字典的维护和修改是由系统自动完成的,用户只能执行SELECT查询系统信息•数据字典属于SYS模式,并且存放在表空间SYSTEM。•Oracle中的数据字典有静态和动态之分3.0静态数据字典•静态数据字典中的视图分为三类•user_*(当前用户所拥有对象的信息)•all_*(当前用户能够访问的对象的信息)•dba_*(数据库中所有对象的信息,需要有DBA权限才能访问)3.0静态数据字典•常用的静态视图示例:select*fromuser_usersuser_users描述当前用户的信息,包括用户名、帐户id、帐户状态、表空间名、创建时间等select*fromuser_tablesuser_tables描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等selectobject_type,statusfromuser_objectswhereobject_name=upper(‘package1’)user_objects当前用户拥有的所有对象的信息,包括表、视图、存储过程、触发器、索引等3.0User_tab_privs视图:当前用户下对所有表的权限。3.0动态数据字典•动态数据字典(通常称为:动态性能视图),由系统管理员维护(如:SYS)•当数据库运行的时候它们会不断进行更新•只能对其进行只读访问而不能修改它们•动态性能视图都是以v$开头的视图3.0总结1.掌握Oracle数据库验证账户的概念,用户与模式的关系。能够创建账户/密码,修改账户基本要素。2.掌握Oracle数据库的权限体系(系统权限、对象权限),能够根据需求,给数据库账户授予相应的SQL权限,对不需要的权限能够收回。3.掌握Oracle数据库角色的重要地位,能够分类和分配权限集合,并把角色授予账户,并能回收角色权限。3.0更多信息1.列出可扩展内容。。。2.列出参考资源(附件、书籍、文章、网址等)。3.请求学员反馈、回答问题。4.作业问题讲解。。。3.0作业与预习1.作业。。。2.预习。。。3.回顾安排。。。4.实验安排。。。3.0数据库安全性练习

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

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

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

×
保存成功