使用ORACLE 的JAVA儲存過程修改作業系統密碼
問題:
有一臺windows 2003 的ORACLE11G 資料庫伺服器,可以連線資料庫,但忘記了administartor 的口令。由於硬碟都做了RAID, 使用WINPE 啟動後,看不到C盤。網上的一種做法是使用支援RAID 驅動的WINPE 引導,但伺服器時限久,已找不到RAID驅動。
思路:
使用ORACLE的JAVA儲存過程執行作業系統的命令。
過程:
SQL> conn sys/oracle@hisserver as sysdba
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as SYS
SQL> create or replace and compile java source named oscmd as
2 import java.io.*;
3 import java.lang.*;
4 public class OSCmd extends Object {
5 public static int OSCmd(String args) {
6 Runtime rt = Runtime.getRuntime();
7 int rc = -1;
8 try {
9 Process p = rt.exec(args);
10 int bufSize = 4096;
11 BufferedInputStream bis = new BufferedInputStream(p.getInputStream(), bufSize);
12 int len;
13 byte buffer[] = new byte[bufSize];
14 while ((len = bis.read(buffer, 0, bufSize)) != -1)
15 System.out.write(buffer, 0, len);
16 rc = p.waitFor();
17 } catch (Exception e) {
18 e.printStackTrace();
19 rc = -1;
20 } finally {
21 return rc;
22 }
23 }
24 }
25 /
Java created
SQL> CREATE OR REPLACE FUNCTION Run_Cmd(p_Cmd IN VARCHAR2) RETURN NUMBER
2 AS LANGUAGE JAVA NAME
3 'OSCmd.OSCmd(java.lang.String) return integer';
4 /
Function created
SQL> set serveroutput on
SQL> exec dbms_java.set_output(100000);
PL/SQL procedure successfully completed
SQL> variable x number;
SQL> exec :x := RUN_CMD('net user administrator 2);
PL/SQL procedure successfully completed
x
---------
0
如果使用普通使用者,則需給其授一定許可權:
exec dbms_java.grant_permission('USERNAME','SYS:java.io.FilePermission','<<ALL FILE>>','read,write,execute,delete');
exec dbms_java.grant_permission('USERNAME','SYS:java.lang.RuntimePermission','*','WriteFileDescriptor');
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9036/viewspace-1980921/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用oracle儲存過程執行作業系統命令Oracle儲存過程作業系統
- 系統 儲存過程儲存過程
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- java中呼叫ORACLE儲存過程JavaOracle儲存過程
- 用java呼叫oracle儲存過程JavaOracle儲存過程
- oracle的儲存過程Oracle儲存過程
- Java呼叫Oracle儲存過程的問題JavaOracle儲存過程
- oracle 儲存過程遊標的使用Oracle儲存過程
- 把自編儲存過程設定為系統儲存過程儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- java儲存過程Java儲存過程
- Oracle儲存過程Oracle儲存過程
- 產生隨機密碼的sql儲存過程隨機密碼SQL儲存過程
- oracle儲存過程分頁程式碼Oracle儲存過程
- oracle的儲存過程格式Oracle儲存過程
- 如何在Oracle中使用Java儲存過程(詳解)(轉)OracleJava儲存過程
- 使用儲存過程儲存過程
- 一個SQL Server Sa密碼破解的儲存過程SQLServer密碼儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- 用java呼叫oracle儲存過程總結JavaOracle儲存過程
- Oracle開發人員 JAVA儲存過程OracleJava儲存過程
- JAVA儲存過程(轉)Java儲存過程
- java操作儲存過程Java儲存過程
- Oracle儲存過程-1Oracle儲存過程
- Oracle儲存過程例子Oracle儲存過程
- Oracle建立儲存過程Oracle儲存過程
- oracle plsql儲存過程OracleSQL儲存過程
- ORACLE 儲存過程示例Oracle儲存過程
- 【實戰】oracle job + 儲存過程 的使用示例Oracle儲存過程
- 談談系統密碼儲存策略密碼
- Mysql 儲存過程的使用MySql儲存過程
- ORACLE高效分頁儲存過程程式碼Oracle儲存過程
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- 【SQL Server】常見系統儲存過程SQLServer儲存過程
- 編寫JAVA儲存過程Java儲存過程
- java中呼叫儲存過程Java儲存過程
- 原創:oracle 儲存過程Oracle儲存過程
- oracle 儲存過程批次提交Oracle儲存過程