这是一位大师的讲oracle时的第一节课的课件,专门讲如何学习oracle
第二段:Oracle的重要性
第三段:学习前提
学习Oracle的前提是:熟悉Linux操作系统、Unix操作系统、存储、带库.主要是管理和操作系统原理
第四段:学习方法
①.、sql、pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验)
作为oracle的基本功,需要大家对sql和plsql非常的熟悉.特别是sql里面的多表连接、子查询、各种新版本的函数,以及plsql里面的所有语法.建议大家拿出足够的时间来研究这两块.不要认为这是开发人员的工作,他也是DBA的重要工作,而且对DBA的要求更高,你不但能看懂,还要能够找出问题.学些这方面知识的要点就是:多练、多思考,多测试.
这是Oracle的难点,Orcle技术博大精深,主要的难点就集中今天这一节面.包括Oracle的存储管理、对象管理、内存和进程、undo管理、初始化参数、数据字典视图、安全、latch和lock、权限和角色、资源调度、闪回、日志原理等.
学习这一块知识的时候,一个重点是:要知道原理和"根",知道表面的东西没有任何意义.
知道原理以后,通过实验去证明,将原理总结出来.
这一块学习的好还是不好,直接决定了以后的一个备份恢复、优化、排错.
这一块虽然是研究管理,但是更加注重原理和体系结构的分析和解剖.
应该叫做"深入剖析Oracle体系结构",多深都需要.
在这一部分的学习中,已经学习了很多优化的内容,在学习任何一个知识点的时候,我们都离不开对性能的分析.
有了第二部分的铺垫,这一章的学习相对有意思,前提是我们对Oracle的日志原理研究得较深,对oracle的内存和进程研究得较深.策划一个完美和正确的备份计划和实施方案(具体要分析出原理),实施备份;对各种损坏进行恢复(还是要能够够分析出原理);另外可以做一些高难度的恢复实验(还是老话、要能够分析出原理).
这一块完全是第一部分和第二部分的一个结合.这一块的学习没有最深,只有更深,学习方法和第二部分类似.
首先需要大家掌握一些Oracle的优化方面的基础知识,例如深入分析索引原理、分区、等待事件、时间统计模型、动态性能视图、操作系统的一些性能优化和查看命令,例如:top、iostat、vmstat、sar、pmap、prstat、filemon、nmon、svmon等.
最关键的还是要做三件事情:Oracle的动态性能视图、Oracle的报告(trace、statspack、awr、addm、ash)、执行计划;对这三块要熟悉和分析出来.这个部分的分析和动手实验很重要.
现在RAC的使用越来越多,学习RAC的重点还是:基础原理◆RAC优化.
RAC系统的优化分为两个步骤:RAC系统优化和单实例优化;根据RAC的基础原理,能够设计高性能的RAC系统,能够分析RAC性能问题.对RAC的动态性能视图、等待事件、报告,能够看懂和分析.
对于这些工具和组件,我们熟悉其体系结构,原理,一些监控性能的工具等.
学习这些部分的几个点:熟悉体系结构、原理;搭建;监控(包括故障和性能);排错和优化.
为什么单独的拿出来呢?因为这部分需要持之以恒的进行研究和实验,而且工作中几乎是每天都要做的事情.
目前这方面,有一些比较经典的中文书,值得大家去看看.
在这部分学习的时候,就要时时刻刻注意性能,主要是注意测试.
模拟环境:
规划、搭建、测试、管理、排错、优化、分析
实战环境:
同上
Oracle的安全措施主要有三个方面,一是用户标识和鉴定;二是授权和检查机制;三是审计技术(是否使用审计技术可由用户灵活选择);除此之外,Oracle还允许用户通过触发器灵活定义自己的安全性措施.
第一段:用户标识和鉴定
在Oracle中,最外层的安全性措施是让用户标识自己的名字,然后由系统进行核实.Oracle允许用户重复标识三次,如果三次未通过,系统自动退出.
第二段:授权与检查机制
Oracle的权限包括系统权限和数据库对象的权限两类,采用非集中的授权机制,即DBA负责授予与回收系统权限,每个用户授予与回收自己创建的数据库对象的权限.
Oracle允许重复授权,即可将某一权限多次授予同一用户,系统不会出错.Oracle也允许无效回收,即用户没有某种权限,但回收此权限的操作仍算成功.
① 系统权限
Oracle支持角色的概念.所谓角色就是一组系统权限的集合,目的在于简化权限管理.Oracle除允许DBA定义角色外,还提供了预定义的角色,如CONNECT,RESOURCE和DBA.
具有CONNECT角色的用户可以登录数据库,执行数据查询和操纵.即可以执行ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等操作.
RESOURCE角色可以创建表,即执行CREATE TABLE操作.创建表的用户将拥有对该表的所有权限.
DBA角色可以执行某些授权命令,创建表,对任何表的数据进行操纵.它涵盖了前两种角色,此外还可以执行一些管理操作,DBA角色拥有最高级别的权限.
例如DBA建立一用户U1后,欲将ALTER TABLE,CREATE VIEW,CREATE INDEX,DROP TABLE,DROP VIEW,DROP INDEX,GRANT,REVOKE,INSERT,SELECT,UPDATE,DELETE,AUDIT,NOAUDIT等系统权限授予U1,则可以只简单地将CONNECT角色授予U1即可:
GRANT CONNECT TO U1;
这样就可以省略十几条GRANT语句.
在Oracle中,可以授权的数据库对象包括基本表、视图、序列、同义词、存储过程、函数等,其中最重要的是基本表.
对于基本表Oracle支持三个级别的安全性:表级、行级和列级.
(1)表级安全性
表的创建者或者DBA可以把表级权限授予其他用户,表级权限包括:
ALTER:修改表定义
DELETE:删除表记录
INDEX:在表上建索引
INSERT:向表中插入数据记录
SELECT:查找表中记录
UPDATE:修改表中的数据
ALL:上述所有权限
表级授权使用GRANT和REVOKE语句.
Oracle行级安全性由视图实现.用视图定义表的水平子集,限定用户在视图上的操作,就为表的行级提供了保护.视图上的授权与回收与表级完全相同.
由于ORACLE数据库产品是当前数据库技术的典型代表,她的产品除了数据库系统外,还有应用系统、开发工具等.刚接触Oracle的人员都有这样的感觉:Oracle的产品太多,每个产品内容精深,不知道从哪儿开始学才好.为了用少量时间更好地理解和使用oracle 数据库系统,有必要对oracle的一些基本术语及概念进行了解,下面给出一些在管理中经常用到的概念和术语,供初学者快速了解Oracle数据库系统提供方便.
①对象/关系模型
l 数据库核心(Database )
l 应用服务器(Application Server )
l 开发工具集(Developer Suite )
l 电子商务智能化( E-Business Intelligence )
l 应用开发( Applications Development )
l 应用主机( Applications Hosting )
l 门户与内容( Portals and Content )
l 电子商务连续性( E-Business Continuity )
l 商业智能与数据仓库( Business Intelligence and Data Warehousing)
l 电子商务集成( E-Business Integration )
Oracle Internet Application Server 提供了行业中最全面的中间层产品,包括通信、表示、商业逻辑、数据缓存和系统服务等.
①通信服务:
基于Apache 的ORACLE HTTP Server,主要包括下面模块:
mod_jserv:将对servlet 的HTTP请求分发到Oracle iAS 的Servlet 引擎.
Mod_perl:将perl 程序的HTTP 请求分发到Apache Web Server 的Perl Interpreter.
Mod_plsql:Oracle 专用模块,用来将HTTP请求传到数据库内的PL/SQL和Java存储过程.
提供下面方法进行内容表示:
Oracle portal(Oracle 门户)
Apache Jserver (Apache Java 服务器)
Perl Interpreter( Perl 解释程序 )
Oracle JavaServer Pager(JSP)
Oracle PL/SQL Server Pages(PSP)
可提供以下服务组件:
Form Service
Report Service
Discoverer Viewer
Oracle Enterprise Manager(Oracle 企业管理器)
Oracle Advanced Security (Oracle 高级安全性)
Developer's KITS(开发工具),包括:
l Oracle database client developer's Kit
l Oracle XML developer's Kit(XDK)
l Oracle LDAP developer's Kit
Oracle 公司除了提供完美的数据库系统外,也提供完整的解决方案的套件,即全套应用系统,通常称作 Oracle Application R11i.它是一全面集成的电子商务套件.它包括:
①..数据仓库平台
l Oracle Warehouse Builder(数据仓库构造器)
l Oracle Discoverer
l Oracle Express产品系列
l Oracle darwin
l 绩效管理
l 客户关系管理
l 风险管理
基于Internet 的财务管理系统包括下面模块:
l 商业智能管理
l 预算管理
l 合并管理
l 现金预测管理
l 员工费用管理
l Oracle 财务分析系统
l Oracle 项目管理系统
l 工作流程管理
l 预警系统
l 过程组件
l 分布选件
可以支持多台服务器(在不同的地方)间的通信,即每个服务器上均有Oracle系统,而分布选件就是把这些不同的地方的数据库系统管理起来的部件.
l 并行选件
对一台具有多个CPU的机器能进行并行查询、充分利用计算机的性能.
l 并行服务器
对于多台机器(有自己的处理器)共同访问同一个硬盘这样的结构进行管理,为用户提供很高的容错性.当某台机器出现故障时,可以安排用户使用(登录)到另一台机器上.当两台都出现故障时,则整个系统都不能使用.
l 图象选件
可以存储、管理和提供实时的,全屏幕的图象和高质量的声音给网络上的用户.
l 企业管理器
Oracle 提供一个帮助用户管理系统,应用网络和数据库工具"Oracle企业管理器(OEM)".
l 空间数据选件(Spatial data option)
空间数据选件是一种存储和检索数据的新方法,在查询中系统根据所关心的数据进行组织,所以呢,数据库性能的主要决定因素是所感兴趣的数据库集的大小.
l 上下文选件
l Web服务器
可以通过WWW来访问Oracle数据库中的数据.
l OLAP选件
联机分析处理,Oracle提供Oracle Express作为联机分析处理.
l SQL*Plus
Oracle的SQL*Plus是标准SQL的一个超集,它除提供符合SQL标准的语句外,还提供一些Oracle特定的外加语句,set,column,Ttitle等.
l Oralce Forms
Oracle Forms的前身是SQL*Forms.SQL*Forms和Oracle Forms都是为用户提供输入、查询、修改等功能的开发工具,前者是在字符终端上运行.后者是在图形终端上运行.Oracle Forms除了在许多触发器及功能键继承前者外,大部分的设计界面都发生了变化.
SQL*Forms不含Menu功能,Menu专门为一个产品叫SQL*Menu;而Oracle Forms 把Menu,Library 等融为一体,使功能更强大.
l Oracle Reports
l Oracle Book
Oracle Book提供一个共享Oracle产品文本的联机文档生成与浏览工具.
l Oracle Loader
Oracle Loader早期就提供一个ODL(Oracle data Loader)数据加载工具.该工具可以把多种格式的文本数据加载到Oracle表中.后来的版本更名为SQL*Loader,现在叫Oracle Loader,目前版本可以把多媒体数据加载到数据库系统中.
是一个综合产品的总称,它包括:
l Oracle Forms
l Oracle Graphics
l Procedure Builder
四个部件,它的先前名称叫CDE产品(即协同开发环境),现在Oracle的开发工具叫Oracle Developer.
Business Process Reengineering
Modellers
Generators
l Personal Oracle
l Oracle Jdeveloper
l Oracle Express
可以在线分析处理的工具,利用它可以方便地进行各种数据分析.
l PRO*C, PRO*COBOL, PRO*FORTRAN等
l 财务软件( ORACLE Financials )
ORACLE Financials 是 ORACLE APPLICATION 中用于财务管理的应用程序模块.包括财务会计,管理会计.
l 供应链与制造应用软件
包括:
l 销售定单管理
l 供应商管理
l 新产品工程设计管理
l 物料管理
l 成本管理
l 质量管理
Sql性能非常差的时候,oracle提供了SQL_TRACE来跟踪sql的执行情况.
注:分析sql的方式比较多,还有根据优化器、sql执行计划来分析.
SQL_TRACE能够将sql执行的过程输出到一个trace文件里面.
首先设置自己定义的trace文件的标识方便查找.
alter session set tracefile_identifier='mytest';
然后对当前会话启动SQL_TRACE,最好不要一直打开该开关,代价比较大.
alter session set sql_trace=true;
然后我们执行一条sql语句.
最后关闭该开关的状态.
alter session set sql_trace=false;
我们可以从目录%ORACLE_BASE%/diag/rdbms/orcl/orcl/trace(11g版本的路径,如果是10g的应该不一样)中
找到自己定义的trace文件.
原始的trace文件的可读性不高,我们一般使用oracle自带的工具,tkprof来处理这个trace文件.我们可以查看tkprof的帮助.
Misses in library cache during parse: 0表示这是一次软分析(关于硬分析和软分析下面会接着谈到)
Optimizer mode: ALL_ROWS表示oracle的优化器模式为ALL_ROWS.这也就是前面提到的另外的分析方式优化器.
下面是sql执行的具体计划,可以看到执行计划选择的是全表扫描.
经过处理以后的trace文件的确比较容易看明白,它有助于我们分析sql的性能问题.
下面我通过一个trace实例来解释一下,为什么OLTP系统中需要变量绑定机制.
当用户和数据库建立连接,并发送一条sql语句以后,oracle会对该sql进行hash函数运算(hash算法提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,每一个真实值只能有一个键值,但是一个键值可以对应多个真实值,以方便存取),得到一个hash值,然后到共享池中寻找是否有匹配的hash值的sql存在,如果有,就直接使用该sql的执行计划去执行sql.如果没有,oracle就会认为这是一条新的sql语句,然后按照语法分析,语义分析,生成执行计划,执行sql这些步骤来执行最终把结果返回给用户.这些步骤也被成为硬分析,可以想象,如果减少硬分析,能够大大降低数据库花费在sql解析上的资源开销.
应用级调优分析:
对应用这一级别的调优,主要集中在app程序,中间件的监控,集群配置等方面.如果是发现应用级别的问题,首先要分析是配置问题,还是程序本身的问题.如果并发用户数很大,中间件的线程池最大值配置过小,会导致在请求队列堆积,表现就是线程监控视图中,请求的队列堆积比较多,一般可以调整线程池最大值来解决.我们来看看weblogic的监控视图.
考虑到如果为每一个请求都创建一个新线程来处理的话,那么我们难以在系统中实现足够数量的线程.不受限制的创建线程可能耗尽系统资源,所以呢引入了线程池.线程池的思想是在进程开始时创建一定数量的线程并将它们置入一个池(pool)中,线程在这个池中等待工作.当服务器接收到一个请求时,它就从池中唤醒一个线程(如果有可用的线程),由它来处理请求.一旦线程服务完毕,它就返回线程池等待后面的工作.
线程池利用已存在的线程服务请求要比等待创建一个线程要快,并且线程池限制了线程的数量.
其中监视视图比较关心垃圾回收活动(顾名思义,回收那些在程序里面不再使用到的内存空间),堆内存变化.如果在压力测试过程中,堆内存变化是一个逐渐上涨的趋势,并且经过多次手动gc回收,还是保持这个趋势,说明内存泄漏的可能性很大.如果猜测有内存泄漏,可以通过分析java的heap dump.JVM (java虚拟机)记录下问题发生时系统的运行状态并将其存储在转储(dump)文件中.Heap dump就是这样一种文件形式.
线程视图比较关心线程的当前执行状态,这里可以生成另一种转储文件 Java dump.Java dump,也叫做 Thread dump,是 JVM 故障诊断中最重要的转储文件之一.JVM 的许多问题都可以使用这个文件进行诊断,其中比较典型的包括线程阻塞,CPU 使用率过高,JVM Crash,堆内存不足,和类装载等问题.其中线程阻塞更加常见.
原文转自:
-- 首先,以超级管理员的身份登录oracle
sqlplus sys/bjsxt as sysdba
--然后,解除对scott用户的锁
alter user scott account unlock;
--那么这个用户名就能使用了.
--(默认全局数据库名orcl)
①.0、select * from emp where deptno=10; --(条件过滤查询)
①.1、select * from emp where empno 10; --大于 过滤判断
------------------------聚组函数group by() --------------------------------------
--------------------------------------------------having函数对于group by函数的过滤 不能用where--------------------------------------
------------------------------/等值连接--------------------------------------
--------------------------------------/非等值连接------------------------------------------/
join dept d on(e.deptno = d.deptno)
join salgrade s on (e.sal between s.losal and s.hisal)
where ename not like '_A%'; --三张表的连接
(select avg(sal) max_sal,deptno from emp group by deptno)
where max_sal =
(select max(max_sal) from
);--求平均薪水最高的部门名称和编号.
(select deptno, grade, avg_sal from
(select deptno, avg(sal) avg_sal from emp group by deptno) t
join salgrade s on(t.avg_sal between s.losal and s.hisal)
) t1
join dept on (t1.deptno = dept.deptno)
where t1.grade =
(
select min(grade) from
)
)--求平均薪水等级最低的部门的名称 哈哈 确实比较麻烦
select deptno, grade, avg_sal from
join salgrade s on(t.avg_sal between s.losal and s.hisal);
--视图的创建,一般以v$开头,但不是固定的
v$_dept_avg_sal_info t1
)--求平均薪水等级最低的部门的名称 用视图,能简单一些,相当于Java中方法的封装
conn sys/admin as sysdba;
--显示:连接成功 Connected
grant create table, create view to scott;
-- 显示: 授权成功 Grant succeeded
select ename, sal from emp where empno in
(select distinct mgr from emp where mgr is not null)
and sal
select max(sal) from emp where empno not in
select * from emp where deptno = 10 and ename like '%A%';--好,将过滤力度大的放在前面
select * from emp where ename like '%A%' and deptno = 10;
----只对某个字段插入数据
select ename from (select rownum r,ename from emp) where r 10;
数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失
以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪.本文围绕数据
库的安全性问题提出了一些安全性策略,希望对数据库管理员有所帮助,不再
夜夜恶梦.数据库安全性问题应包括两个部分:
第一段:数据库数据的安全
它应能确保当数据库系统DownTime时,当数据库数据存储媒体被破
坏时以及当数据库用户误操作时,数据库数据信息不至于丢失.
第二段:数据库系统不被非法用户侵入
它应尽可能地堵住潜在的各种漏洞,防止非法用户利用它们侵入数据
库系统.
对于数据库数据的安全问题,数据库管理员可以参考有关系统双机
热备份功能以及数据库的备份和恢复的资料.
以下就数据库系统不被非法用户侵入这个问题作进一步的阐述.
组和安全性:
在操作系统下建立用户组也是保证数据库安全性的一种有效方法.
Oracle程序为了安全性目的一般分为两类:一类所有的用户都可执行,
另一类只DBA可执行.在Unix环境下组设置的配置文件是/etc/group,
关于这个文件如何配置,请参阅Unix的有关手册,以下是保证安全性的
几种方法:
(1) 在安装Oracle Server前,创建数据库管理员组(DBA)而且
分配root和Oracle软件拥有者的用户ID给这个组.DBA能执
被自动分配给DBA组.
一个由授权用户组的Oracle组,确保给Oracle服务器实用例
程Oracle组ID,公用的可执行程序,比如SQL*Plus,SQL*Fo
rms等,应该可被这组执行,然后该这个实用例程的权限为
注:在我们的系统中为了安装和调试的方便,Oracle数据库中
的两个具有DBA权限的用户Sys和System的缺省密码是manager.
为了您数据库系统的安全,我们强烈建议您该掉这两个用户的
密码,具体操作如下:
在SQL*DBA下键入:
alter user sys indentified by password;
alter user system indentified by password;
其中password为您为用户设置的密码.
Oracle服务器实用例程的安全性:
以下是保护Oracle服务器不被非法用户使用的几条建议:
(1) 确保$ORACLE_HOME/bin目录下的所有程序的拥有权归Oracle
软件拥有者所有;
限,使服务器上所有的用户都可访问Oracle服务器;
和Unix组当访问本地的服务器时,您可以通过在操作系统下把
Oracle服务器的角色映射到Unix的组的方式来使用Unix管理服
务器的安全性,这种方法适应于本地访问.
在Unix中指定Oracle服务器角色的格式如下:
ora_sid_role[_dla]
其中
sid 是您Oracle数据库的oracle_sid;
role 是Oracle服务器中角色的名字;
d (可选)表示这个角色是缺省值;
a (可选)表示这个角色带有WITH ADMIN选项,
您只可以把这个角色授予其他角色,不能是其他用户.
以下是在/etc/group文件中设置的例子:
ora_test_osoper_d:NONE:1:jim,narry,scott
词组"ora_test_osoper_d"表示组的名字;词组"NONE"表示这
个组的密码;数字1表示这个组的ID;此时此刻呢的是这个组的成员.前两
行是Oracle服务器角色的例子,使用test作为sid,osoper和osdba作
为Oracle服务器角色的名字.osoper是分配给用户的缺省角色,osdba
带有WITH ADMIN选项.为了使这些数据库角色起作用,您必须shutdown
您的数据库系统,设置Oracle数据库参数文件initORACLE_SID.ora中
os_roles参数为True,然后重新启动您的数据库.如果您想让这些角色
有connect internal权限,运行orapwd为这些角色设置密码.当您尝
试connect internal时,您键入的密码表示了角色所对应的权限.
SQL*DBA命令的安全性:
如果您没有SQL*PLUS应用程序,您也可以使用SQL*DBA作SQL查权
限相关的命令只能分配给Oracle软件拥有者和DBA组的用户,因为这些
命令被授予了特殊的系统权限.
(1) startup
数据库文件的安全性:
Oracle软件的拥有者应该这些数据库文件
拥有者可读可写,同组的和其他组的用户没有写的权限.
Oracle软件的拥有者应该拥有包含数据库文件的目录,为了增加
安全性,建议收回同组和其他组用户对这些文件的可读权限.
网络安全性:
当处理网络安全性时,以下是额外要考虑的几个问题.
(1) 在网络上使用密码
在网上的远端用户可以通过加密或不加密方式键入密码,
当您用不加密方式键入密码时,您的密码很有可能被非法用
户截获,导致破坏了系统的安全性.
您可以通过下列两种方式对网络上的DBA权限进行控制:
A 设置成拒绝远程DBA访问;
B 通过orapwd给DBA设置特殊的密码.
建立安全性策略:
系统安全性策略
(1) 管理数据库用户
数据库用户是访问Oracle数据库信息的途径,所以呢,
应该很好地维护管理数据库用户的安全性.按照数据库系统
的大小和管理数据库用户所需的工作量,数据库安全性管理
者可能只是拥有create,alter,或drop数据库用户的一个
特殊用户,或者是拥有这些权限的一组用户,应注意的是,只
有那些值得信任的个人才应该有管理数据库用户的权限.
数据库用户可以通过操作系统,网络服务,或数据库进行
身份确认,通过主机操作系统进行用户身份认证的优点有:
A 用户能更快,更方便地联入数据库;
B 通过操作系统对用户身份确认进行集中控制:如果操作
系统与数据库用户信息一致,那么Oracle无须存储和管
理用户名以及密码;
C 用户进入数据库和操作系统审计信息一致.
A 数据库管理员必须有create和delete文件的操作系统权限;
B 一般数据库用户不应该有create或delete与数据库相关文
件的操作系统权限;
C 如果操作系统能为数据库用户分配角色,那么安全性管理者
必须有修改操作系统帐户安全性区域的操作系统权限.
数据的安全性策略:
数据的生考虑应基于数据的重要性.如果数据不是很重要,那么数
据的安全性策略可以稍稍放松一些.然而,如果数据很重要,那么应该
有一谨慎的安全性策略,用它来维护对数据对象访问的有效控制.
用户安全性策略:
(1) 一般用户的安全性
A 密码的安全性
如果用户是通过数据库进行用户身份的确认,那么建议
使用密码加密的方式与数据库进行连接.这种方式的设置方
法如下:
ora_encrypt_login数为true;
在服务器端的initORACLE_SID.ora文件中设置
dbling_encypt_login参数为true.
B 权限管理
对于那些用户很多,应用程序和数据对象很丰富的数据
库,应充分利用"角色"这个机制所带的方便性对权限进行
有效管理.对于复杂的系统环境,"角色"能大大地简化权
限的管理.
您必须针对终端用户制定安全性策略.例如,对于一个有
很多用户的大规模数据库,安全性管理者可以决定用户组分类,
为这些用户组创建用户角色,把所需的权限和应用程序角色授
予每一个用户角色,以及为用户分配相应的用户角色.当处理
特殊的应用要求时,安全性管理者也必须明确地把一些特定的
权限要求授予给用户.您可以使用"角色"对终端用户进行权
限管理.
数据库管理者安全性策略:
(1) 保护作为sys和system用户的连接
当数据库创建好以后,立即更改有管理权限的sys和system用
户的密码,防止非法用户访问数据库.当作为sys和system用户
连入数据库后,用户有强大的权限用各种方式对数据库进行改动.
应该只有数据库管理者能用管理权限连入数据库,当以sysdba
或startup,shutdown,和recover或数据库对象(例如create,
drop,和delete等)进行没有任何限制的操作.
应用程序开发者的安全性策略:
(1) 应用程序开发者和他们的权限
数据库应用程序开发者是唯一一类需要特殊权限组完成自己
工作的数据库用户.开发者需要诸如create table,create
procedure等系统权限,然而,为了限制开发者对数据库的操作,
只应该把一些特定的系统权限授予开发者.
A 程序开发者不应与终端用户竞争数据库资源;
B 用程序开发者不能损害数据库其他应用产品.
应用程序开发者有一下两种权限:
A free development
应用程序开发者允许创建新的模式对象,包括table,index,
procedure,package等,它允许应用程序开发者开发独立于其
他对象的应用程序.
B controlled development
应用程序开发者不允许创建新的模式对象.所有需要table,
indes procedure等都由数据库管理者创建,它保证了数据
库管理者能完全控制数据空间的使用以及访问数据库信息的
途径.但有时应用程序开发者也需这两种权限的混和.
数据库安全性管理者能创建角色来管理典型的应用程序开
发者的权限要求.
A create系统权限常常授予给应用程序开发者,以到于
他们能创建他的数据对象.
B 数据对象角色几乎不会授予给应用程序开发者使用的
角色.
作为数据库安全性管理者,您应该特别地为每个应用程
序开发者设置以下的一些限制:
A 开发者可以创建table或index的表空间;
B 在每一个表空间中,开发者所拥有的空间份额.应用程
序管理者的安全在有许多数据库应用程序的数据库系统
中,您可能需要一应用程序管理者,应用程序管理者应
负责以下的任务:
C 为每一个应用程序创建角色以及管理每一个应用程序
的角色;
D 创建和管理数据库应用程序使用的数据对象;
E 需要的话,维护和更新应用程序代码和Oracle的存储
过程和程序包.
以上就是土嘎嘎小编为大家整理的如何集中監控oracle相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!