当前位置:首页 » 编程语言 » oracle管理sql

oracle管理sql

发布时间: 2022-10-31 18:35:38

❶ 对oracle 数据库管理,哪些PL/sql Packages 很常用

oracle clinet 是客户端。 server是服务器。 数据库就一个客户端一个服务器。 pl/sql是一种语言。一种数据库语言。是oracle数据库对sql语句的扩展。

❷ 用于oracle数据库管理 工具主要有哪些

对于
Oracle数据库
管理:
1、Oracle自带的有sql
plus,基于命令行的;
EM
企业管理器
,基于
图形界面
的(11g以前是桌面版的,11g及以后是web界面的)。
2、第三方工具有
PL/SQL
Developer,容易上手,使用方便,使用人数最多;
Toad
for
oracle,功能比前者强大些,使用起来也相对复杂些。

❸ 简述oracle管理工具sql*plus和isql*plus的区别

SQL/Plus 是oracle自带的数据库管理客户端,可以在这里编辑SQL语句执行,是命令行模式的。
PL/SQL 有两种。 一种是工具 PL/SQL Developer 和SQL/Plus一样是数据库管理客户端,是一种可视化界面,也可以使用命令行编辑SQL。
另外一种是PL/SQL语言,是ORACLE中的块结构语言,类似存储过程,是一种过程话的语言。把SQL语言和编程高级语言想融合,和java近似。
既可以在SQL/Plus上开发PL/SQL语言,也可以在PL/SQL Developer上开发PL/SQL语言。

❹ oracle数据库管理工具有哪些

对于Oracle数据库管理:
1、Oracle自带的有sql plus,基于命令行的;
EM企业管理器,基于图形界面的(11g以前是桌面版的,11g及以后是web界面的)。

2、第三方工具有
PL/SQL Developer,容易上手,使用方便,使用人数最多;
Toad for oracle,功能比前者强大些,使用起来也相对复杂些。

❺ 简述oracle管理工具sql*plus和isql*plus的区别

SQL*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句
pl/sql是工具软件,很多sql语句不能在pl/sql执行,如:shutdown,set
serveroutput
on都不能执行

❻ 如何使用oracle提供的SQL

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的帮助。

tkprof orcl_ora_3820_mytest.trc out.txt

我们来看刚才生成的trace文件,头部信息描述了tkprof 的版本以及报告中一些列的含义,对于任何一条sql语句,都应该包含Parse—sql分析阶段,Execute—sql执行阶段,Fetch—数据提取阶段,横向的列如图所示,包含消耗cpu时间0.00秒,操作总耗时0.04秒,物理读取了0个数据块,没有发生current方式的读取(一般在update会发生),一共提取记录1条。

Misses in library cache ring 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解析上的资源开销。

我们先执行一条sql 1000次,比较绑定变量和不绑定变量的差异。得到结果以后,要计算实际的消耗,我们需要把OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS以及OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS的时间累计起来,前者表示数据字典表的相关的信息,包含权限控制等,后者表示sql所衍生出的递归sql语句的信息。可以看到绑定变量的,整条语句执行时间为0.22+0.02=0.24秒,CPU时间0.18+0.03=0.21秒,分析次数3次,执行次数1003次。而不绑定变量的时候,整条语句执行时间为0.28+1.29=1.57秒,CPU时间0.31+1.26=1.57秒,分析次数1002次,执行次数1003次。可见绑定变量的确能够带来更低的开销。(如何设计数据库中使用绑定变量也是和系统息息相关的,很多数据库问题都是在设计以后就已经存在的)

应用级调优分析:

就通常所说的三层架构来说,中间件这一层能够起到一个缓冲池的作用,如果并发用户数到3000这个数量级的时候,中间件能够控制不是所有的用户都能直接连接到数据库,当然这里的程序会快速响应用户请求,保证缓冲池的队列等待不会很久。

对应用这一级别的调优,主要集中在app程序,中间件的监控,集群配置等方面。如果是发现应用级别的问题,首先要分析是配置问题,还是程序本身的问题。如果并发用户数很大,中间件的线程池最大值配置过小,会导致在请求队列堆积,表现就是线程监控视图中,请求的队列堆积比较多,一般可以调整线程池最大值来解决。我们来看看weblogic的监控视图。

考虑到如果为每一个请求都创建一个新线程来处理的话,那么我们难以在系统中实现足够数量的线程。不受限制的创建线程可能耗尽系统资源,因此引入了线程池。线程池的思想是在进程开始时创建一定数量的线程并将它们置入一个池(pool)中,线程在这个池中等待工作。当服务器接收到一个请求时,它就从池中唤醒一个线程(如果有可用的线程),由它来处理请求。一旦线程服务完毕,它就返回线程池等待后面的工作。

线程池利用已存在的线程服务请求要比等待创建一个线程要快,并且线程池限制了线程的数量。

如果怀疑是程序的问题,我们一般可以通过java自带的工具来帮助分析,工具很多。这里我主要提到一个jdk1.6以后附带的jvisualvm。

我们打开jdk1.6,找到并运行jvisualvm.exe。

我们发现应用程序分为本地,远程两部分。本地包含本地运行的java进程,远程能够通过配置连接到远程服务器上的java进程。我们先启动一个tomcat。可以看到本地应用程序已经打开了一个带有tomcat以及进程标识id的菜单。双击打开。这里我们一般关心2个视图。监视、线程。

其中监视视图比较关心垃圾回收活动(顾名思义,回收那些在程序里面不再使用到的内存空间),堆内存变化。如果在压力测试过程中,堆内存变化是一个逐渐上涨的趋势,并且经过多次手动gc回收,还是保持这个趋势,说明内存泄漏的可能性很大。如果猜测有内存泄漏,可以通过分析java的heap mp。JVM (java虚拟机)记录下问题发生时系统的运行状态并将其存储在转储(mp)文件中。Heap mp就是这样一种文件形式。

线程视图比较关心线程的当前执行状态,这里可以生成另一种转储文件 Java mp。Java mp,也叫做 Thread mp,是 JVM 故障诊断中最重要的转储文件之一。JVM 的许多问题都可以使用这个文件进行诊断,其中比较典型的包括线程阻塞,CPU 使用率过高,JVM Crash,堆内存不足,和类装载等问题。其中线程阻塞更加常见。

❼ Oracle数据库基本知识

Oracle数据库基本知识

Oracle Database,又名OracleRDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。本文为大家分享的是Oracle数据库的基本知识,希望对大家有所帮助!

它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量的数据库解决方案。

介绍

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。

Oracle数据库最新版本为OracleDatabase 12c。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。

就业前景

从就业与择业的角度来讲,计算机相关专业的大学生从事oracle方面的技术是职业发展中的最佳选择。

其一、就业面广:ORACLE帮助拓展技术人员择业的广度,全球前100强企业99家都在使用ORACLE相关技术,中国政府机构,大中型企事业单位都能有ORACLE技术的工程师岗位,大学生在校期间兴趣广泛,每个人兴趣特长各异,不论你想进入金融行业还是电信行业或者政府机构,ORACLE都能够在你的职业发展中给你最强有力的支撑,成为你最贴身的金饭碗。

其二、技术层次深:如果期望进入IT服务或者产品公司,Oracle技术能够帮助提高就业的深度。Oracle技术已经成为全球每个IT公司必选的软件技术之一,熟练掌握Oracle技术能够为从业人员带来技术应用上的优势,同时为IT技术的深入应用起到非常关键的作用。掌握 Oracle技术,是IT从业人员了解全面信息化整体解决方案的基础。

其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。

Oracle数据库漏洞分析:无需用户名和密码进入你的数据库

一般性的数据库漏洞,都是在成功连接或登录数据库后实现入侵;本文介绍两个在2012年暴露的Oracle漏洞,通过这两种漏洞的结合,可以在不掌握用户名/密码的情况下入侵Oracle,从而完成对数据的窃取或者破坏。这两个漏洞就是CVE-2012-1675和CVE-2012-3137。

引言

国内外很多重要的系统都采用Oracle作为数据存储的数据库;在Oracle中存储着企业或政府大量敏感的信息,在金钱或政治的诱导下,内外部黑客会想法利用管理、网络、主机或数据库的自身漏洞尝试入侵到数据库中,以达到自身的目的。

本文的作者通过对Oracle俩种漏洞的组合研究,设计了一套在不掌握用户名/密码的方式入侵到Oracle中;这种方法,比传统的需要登录到数据库中的入侵方法,具有更大的安全隐患和破坏性。

本文希望通过对这两个漏洞和攻击方法的介绍,能够引起相关人员的重视,完善对数据库安全的措施。

1、概要介绍

本文提供的方法是基于漏洞CVE-2012-1675和CVE-2012-3137对oracle数据库的攻击测试的方法。

CVE-2012-1675漏洞是Oracle允许攻击者在不提供用户名/密码的'情况下,向远程“TNS Listener”组件处理的数据投毒的漏洞。攻击者可利用此漏洞将数据库服务器的合法“TNS Listener”组件中的数据转向到攻击者控制的系统,导致控制远程组件的数据库实例,造成组件和合法数据库之间的中间人攻击、会话劫持或拒绝服务攻击。

CVE-2012-3137漏洞是Oracle Database 10g/11g身份验证协议实现中存在一个设计缺陷,攻击者无需认证即可远程获取数据库用户密码哈希相关数据,从而可以离线暴力破解用户密码,进一步控制数据库系统。

我们通过如下的步骤和过程可以实现对Oracle的入侵:

(1)利用CVE-2012-1675进行TNS劫持,在监听下利用远程注册,注册同名数据库实例;

(2)新登陆的用户,在TNS的负载均衡策略下,有可能流量登录到伪造的监听服务上;

(3)该监听服务对用户的登陆过程进行监控,并将相关数据流量转发到真实的数据库上;

(4)利用CVE-2012-3137获得通讯过程中的认证相关信息;

(5)对认证相关信息进行离线的暴力破解,获得登陆的密码;

(6)试用破解的用户名/密码登陆Oracle,完成对Oracle中数据的访问;

2、通过CVE-2012-1675进行TNS劫持

该漏洞存在于Oracle的所有版本,并且Oracle至今仅是发布了警告性通知,并未提供解决方案。

要想利用CVE-2012-1675漏洞做TNS劫持,首先需要了解TNS机制。如下图所示oracle 通过在本地解析网络服务名到目标主机IP地址,服务端口号,目标数据库名,把这些信息发送到oracle服务器端监听程序,最后再由监听程序递送DBMS。

其中关键点在于监听会按照目标数据库名递送到名称正确的数据库。那么如果一个监听下有2个同名数据库。监听将自动按照负载均衡把这次访问发送到负载低的数据库上,进行连接访问。数据库注册到监听的方法就决定了,能否同时注册同名数据库在同一个监听下。注册方式分为本地注册和远程注册,通过修改参数可以调整为远程注册。

下面是一段可用的TNS劫持的过程:

1.在劫持机上创建一个和目标数据库实例同名的数据库实例。

2.在劫持机上修改 tnsnames.ora 文件

添加

listener_name=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=目标机器IP)(PORT=目标机器端口)))

3.在劫持机上用SQL*Plus 顺序执行下面步骤。

1.$ sqlplus / as sysdba

2. SQL> ALTER SYSTEM SETREMOTE_LISTENER='LISTENER_NAME';

3. SQL> ALTER SYSTEM REGISTER;

4.多个客户端,向数据库发起登录。会劫持到一部分客户端的登录信息。

最终达到效果如下图所示:

按照猜想同一个监听下有2个同名实例。客户端访问监听,监听按照客户端中的数据库名信息分配数据库,由于监听下有2个同名数据库,客户端链接很可能会被分配到劫持者的数据库实例下,再通过配置劫持者的本地监听把客户端请求指回原数据库。结构图如下:

测试客户端链接196次。目标数据库实例获得113次,劫持数据库实例获得83次基本满足负载均衡的假设。(注上面实例是local server 下面实例是 remote server)

通过以上方式我们可以截获约一半左右客户端发送到服务器的合法链接。其中获得了服务器IP、端口号、数据库位置、实例名、登录用户名等一系列明文信息和4组密文信息(AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA)。

3、通过CVE-2012-3137进行密码破解

CVE-2012-3137受影响的数据库版本有11.2.0.3,11.2.0.2,11.1.0.7,有使用了SHA-1加密算法的10.2.0.5和10.2.0.4,还有使用了SHA-1的10.2.0.3(运行在z/OS下)版本。

虽然这个漏洞在11.2.0.3中已经解决,但是仅仅数据库客户端和服务器都升级到11.2.0.3并且sqlnet.ora文件中增加SQLNET.ALLOWED_LOGON_VERSION=12才有效。

正如CVE-2012-3137所描述Oracle为了防止第三方通过网络获取登录信息包。而对密码进行了加密处理。本部分只以oracle11.1密码如何破解为例进行说明。

在发起连接之后(oracle牵手完成),客户端和服务器经过协商确定要使用的验证协议。要完成这个任务,客户端首先向数据库发送一个包。包中包含客户端主要信息和所请求的加密方式。数据库确认加密方式有效后,发送一个确认服务包如下图所示:

在通过安全网络服务完成任何所要求的协议之后,数据库用户被O3logon(oracle验证方式) 进行验证,这个协议执行一个序列来向数据库证明客户端拥有密码。为了避免网络第三方截获到密码。首先客户端发送用户名到数据库来表明用户身份。数据库端根据加密协议,其中96位的作为数据库端密钥,20位的作为偏移量,它对每个连接都是不同的。一个典型的数据库端发给客户端的密钥如下:

AUTH_SESSKEY.....COCDD89FIGODKWASDF……………………

客户端根据加密算法向服务器端发送96位的客户端密钥和64位的密码密钥。服务器端计算客户端传入的密码密钥。如果计算后密码密文和数据库中存储的16位密码密文一致则验证通过。

根据这个过程可知上面TNS劫持包中取得的加密信息:AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA这四个值是解密的关键。我们把他们按照SHA1,MD5,AES192进行一系列处理。最终通过数据字典碰撞得到密码明文。

下面这段网上公布的一段示例代码,这段代码与笔者的思路不完全相同,但也能大概地说明这个漏洞的攻击过程:

import hashlib

from Crypto.Cipher import AES

def decrypt(session,salt,password):

pass_hash= hashlib.sha1(password+salt)

key =pass_hash.digest() + 'x00x00x00x00'

decryptor= AES.new(key,AES.MODE_CBC)

plain =decryptor.decrypt(session)

returnplain

session_hex ='6EAAB5422553A7598143E78767'

salt_hex = 'A7193E546377EC56639E'

passwords = ['test','password',''oracle','demo']

for password in passwords:

session_id= decrypt(session_hex.decode('hex'),salt_hex.decode('hex'),password)

print'Decrypted session_id for password "%s" is %s' %(password,session_id.encode('hex'))

ifsession_id[40:] == 'x08x08x08x08x08x08x08x08':

print'PASSWORD IS "%s"' % password

break

4、建议的预防措施

根据以上两段分析,我们可以有如下的预防措施:

(1)在条件许可的情况下,对Oracle进行补丁升级,对Oracle打cpuoct2012-1515893补丁;注意对于cpuoct2012-1515893补丁要求服务器端和应用服务器端同时升级,否则应用系统将无法访问Oracle;

(2)若无法对Oracle升级,要购买或安装具备虚拟补丁功能的数据库安全产品,防止对CVE-2012-3137和CVE-2012-1675的利用;

(3)建立足够强健的口令,不要使用8位以下密码,或者字典库中的口令。

;

❽ Oracle写出相应的SQL语句 1. 系统管理员admin,密码为adminpwd,登录后创建用户abc,密码ab

系统管理员admin,密码为adminpwd,登录后创建用户abc,密码abcpwd,并创建data表空间作为该用户的默认表空间,数据文件存储在D盘project目录。
create tablespace data datafile 'D/project'

create user abc identified by abcpwd default tablesapce data

❾ oracle数据库管理工具有哪些

toad for oracle

Toad由Oracle开发专家专门为开发人员而设计,是一个功能强大、结构紧凑的专业化PL/SQL开发环境。在Toad的新版本中,还加入了DBA(Database Administrator数据库管理员)模块,可以帮助DBA完成许多日常管理工作。它最大的特点就是简单易用,访问速度快。使用Toad,我们可以通过一个图形化的用户界面快速访问数据库,完成复杂的SQL和PL/SQL代码编辑和测试工作,是一个高效的Oracle应用开发工具-Toad(Tools of Oracle Application Developers)。

Toad 主要特点

模式浏览器(schema browser):

模式浏览功能可以快速访问数据字典,浏览数据库中的表、索引、存储过程。Toad 提供对数据库的快速访问,使用极为方便,用户界面简洁,结构安排合理。当我们点击一个单独的数据库对象,Toad立即显示此对象的详细信息。例如,当我们点一个数据库的表,所有和此表相关的索引、约束、存储过程、SQL语句以及和其他表的相互引用关系都在同一界面显示出来。为了简化操作,用户可以在一个模式浏览器窗口中操作所有数据库对象。

热点内容
小鸟云如何去看客户服务器密码 发布:2025-05-20 07:58:51 浏览:897
怎么更改app的密码 发布:2025-05-20 07:54:32 浏览:784
汽车配置物品怎么处理 发布:2025-05-20 07:47:23 浏览:225
怎么修改华为wifi密码 发布:2025-05-20 07:45:12 浏览:41
php函数递归 发布:2025-05-20 07:39:36 浏览:781
登陆认证失败请检查服务器地址 发布:2025-05-20 07:06:55 浏览:831
无限分类实现php 发布:2025-05-20 06:57:40 浏览:681
数据结构c语言版严蔚敏李冬梅 发布:2025-05-20 06:55:05 浏览:449
iphone快捷访问 发布:2025-05-20 06:55:05 浏览:929
如何加密硬盘分区 发布:2025-05-20 06:52:29 浏览:363