`
bigfirebird
  • 浏览: 128789 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle的sys用户怎么通过jdbc连接

阅读更多
oracle的sys用户怎么通过jdbc连接

经过GOOGLE 总算知道了如何在JDBC中使用SYSDBA角色连接ORACLE数据库

在DriverManager.getConnection通过Properties 设置连接的defaultRowPrefetch,nternal_logon 等信息。




oracle的sys用户怎么通过jdbc连接

经过GOOGLE 总算知道了如何在JDBC中使用SYSDBA角色连接ORACLE数据库

在DriverManager.getConnection通过Properties 设置连接的defaultRowPrefetch,nternal_logon 等信息。



// -----------------------------------------------------------------------------
// ConnectionOptions.java
// -----------------------------------------------------------------------------

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;


/**
* -----------------------------------------------------------------------------
* The following class provides an example of using jdbc to connect to an
* Oracle database using several advanced options. For example, one of the most
* used option is connecting to a database as SYSDBA. The following table
* contains
*
* Connection Properties Recognized by Oracle jdbc Drivers
* -------------------------------------------------------
* Name                Short Name Type     Description 
* ------------------- ---------- -------- -----------------------------------
* user                n/a        String   The user name for logging into the
*                                         database.
* password            n/a        String   The password for logging into the
*                                         database.
* database            server     String   The connect string for the database.
* internal_logon      n/a        String   A role, such as SYSDBA or SYSOPER,
*                                         that allows you to log on as SYS.
* defaultRowPrefetch  prefetch   String   (containing integer value) 
*                                         The default number of rows to
*                                         prefetch from the server.
*                                         (default value is "10") 
* remarksReporting    remarks    String   (containing boolean value) 
*                                         "true" if getTables() and
*                                         getColumns() should report
*                                         TABLE_REMARKS; equivalent to using
*                                         setRemarksReporting().
*                                         (default value is "false") 
* defaultBatchValue   batchvalue String   (containing integer value) 
*                                         The default batch value that triggers
*                                         an execution request.
*                                         (default value is "10") 
* includeSynonyms     synonyms   String   (containing boolean value)
*                                         "true" to include column information
*                                         from predefined "synonym" SQL
*                                         entities when you execute a
*                                         DataBaseMetaData getColumns() call;
*                                         equivalent to connection
*                                         setIncludeSynonyms() call.
*                                         (default value is "false") 

* -----------------------------------------------------------------------------
*/

public class ConnectionOptions {

    final static String driverClass    = "oracle.jdbc.driver.OracleDriver";
    final static String connectionURL  = "jdbc:oracle:thin:@localhost:1521:TRUESRC";
    final static String userID         = "scott";
    final static String userPassword   = "tiger";
    Connection   con                   = null;


    /**
     * Construct a QueryExample object. This constructor will create an Oracle
     * database connection.
     */
    public ConnectionOptions() {

        Properties conProps = new Properties();
        conProps.put("user", userID);
        conProps.put("password", userPassword);
        conProps.put("defaultRowPrefetch", "15");
        conProps.put("internal_logon", "sysdba");

        try {

            System.out.print("  Loading jdbc Driver  -> " + driverClass + "n");
            Class.forName(driverClass).newInstance();

            System.out.print("  Connecting to        -> " + connectionURL + "n");
            this.con = DriverManager.getConnection(connectionURL, conProps);
            System.out.print("  Connected as         -> " + userID + "n");

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.exit(1);
        } catch (InstantiationException e) {
            e.printStackTrace();
            System.exit(1);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
            System.exit(1);
        } catch (SQLException e) {
            e.printStackTrace();
            System.exit(1);
        }

    }


    /**
     * Method to check which database user we are logged in as
     */
    public void performUserQuery() {

        Statement stmt      = null;
        ResultSet rset      = null;
        String queryString  = "SELECT user, TO_CHAR(sysdate, 'DD-MON-YYYY HH24:MI:SS') " +
                              "FROM   dual";

        try {

            System.out.print("  Creating Statementn");
            stmt = con.createStatement ();

            System.out.print("  Opening ResultsSetn");
            rset = stmt.executeQuery(queryString);

            rset.next();
            System.out.println("      Database User  -> " + rset.getString(1));
            System.out.println("      Date / Time    -> " + rset.getString(2));

            System.out.println();
            System.out.print("  Closing ResultSetn");
            rset.close();

            System.out.print("  Closing Statementn");
            stmt.close();

        } catch (SQLException e) {

            e.printStackTrace();

        }

    }



    /**
     * Close down Oracle connection.
     */
    public void closeConnection() {

        try {
            System.out.print("  Closing Connectionn");
            con.close();
           
        } catch (SQLException e) {
       
            e.printStackTrace();
           
        }

    }


    /**
     * Sole entry point to the class and application.
     * @param args Array of String arguments.
     */
    public static void main(String[] args) {

        ConnectionOptions co = new ConnectionOptions();
        co.performUserQuery();
        co.closeConnection();

    }

}
分享到:
评论
1 楼 yangtaoxf126.com 2011-07-14  
public class SimpleJDBC {
public static void main(String args[]) {
try{
//DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Class.forName("oracle.jdbc.driver.OracleDriver");  
Properties props= new Properties();
props.put("user","SYS");
props.put("password","wwww");
props.put("internal_logon","sysdba");
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl",props);
Statement stmt=conn.createStatement();
stmt.addBatch("grant select on sys.dba_pending_transactions to sys_0000000623 ");
stmt.addBatch("grant select on sys.pending_trans$ to sys_0000000623  ");
stmt.addBatch("grant select on sys.dba_2pc_pending to sys_0000000623 ");
stmt.addBatch("grant execute on sys.dbms_system to sys_0000000623 ");
stmt.executeBatch();

ResultSet rset=stmt.executeQuery("select username from x$kzsrt");
while(rset.next()){
System.out.println("username========= "+rset.getString(1));
}
rset=stmt.executeQuery("select * from dba_tab_privs where grantee = 'SYS_0000000623'");
while(rset.next()){
System.out.println("username========= "+rset.getString(3));
}
}catch(SQLException e){
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

}
}

相关推荐

    java 用jdbc方式以 sys账号连接oracle数据的问题

    本文将深入探讨如何通过Java的JDBC接口以sys用户连接到Oracle数据库,并解决可能遇到的问题。 首先,我们需要了解JDBC的基本概念。JDBC是Java API,它提供了一组接口和类,使得Java应用程序能够与各种类型的数据库...

    java通过jdbc连接oracle数据库.doc

    Java通过JDBC连接Oracle数据库是开发中常见的任务,它允许我们与Oracle数据库进行交互,执行SQL语句,处理结果集等。以下是一个详细的步骤指南,以及相关知识点的介绍。 1. **下载Oracle数据库驱动**: Oracle ...

    oracle11g连接文件oci.zip

    Oracle提供了一个名为JDBC-OCI的驱动,它是Java Database Connectivity (JDBC) 驱动的一种类型,通过JNI(Java Native Interface)调用底层的OCI接口来实现数据库连接。开发者可以在Java代码中配置JDBC URL,指定oci...

    各种数据库的链接(JDBC)

    以上代码演示了如何使用JDBC连接到MySQL数据库,并给出了如何连接到Oracle和DB2数据库的示例。实际应用中,为了增强代码的灵活性和可维护性,建议将数据库连接信息(如URL、用户名和密码)存储在配置文件中,而不是...

    oracle 12 c ORA-01017: 用户名/口令无效; 登录被拒绝

    - **格式要求**:在Java应用程序中使用JDBC连接Oracle数据库时,正确的URL格式对于避免ORA-01017等错误至关重要。 - 正确的URL格式: ```plaintext jdbc:oracle:thin:@localhost:1521/YXSYSPDB ``` - 注意事项...

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    通过使用 Spring JdbcTemplate 调用 Oracle 存储过程,我们可以实现 CRUD 操作。我们的示例代码展示了如何使用 `P_EMP_SELECT` 和 `P_EMP_ADD` 存储过程来实现员工信息的查询和添加操作。 在实际应用中,我们可以...

    Oracle相关技术-解决忘记oracle管理员密码,创建只读用户语法等

    `允许用户连接到数据库。 4. 授予只读权限:`GRANT SELECT ON 所需表名 TO 只读用户名;`,对于每个需要访问的表都需要执行一次此命令。 5. 若要允许只读用户访问所有用户下的所有表,可以使用`GRANT SELECT ANY ...

    eclipse连接Oracle.sqlserver,mysql的设置

    通过以上步骤,我们成功地在 Eclipse 中配置了与 Oracle、SQL Server 和 MySQL 数据库的连接。这为后续进行数据库操作提供了基础。需要注意的是,在实际应用中还需要考虑到安全性问题,比如对敏感信息(如用户名和...

    weblogic+Oracle数据库连接池的配置

    ### WebLogic与Oracle数据库连接池配置详解 ...通过上述详细的步骤,我们可以确保WebLogic Server 7.0与Oracle数据库之间的连接池配置正确无误,从而为后续的应用开发提供稳定高效的数据库访问服务。

    ORACLE常用傻瓜問題1000問全集

    5. **区分64-bit/32-bit版本**:可以通过SQL*Plus连接到数据库,然后运行`SELECT * FROM v$version;`查询,其中的“BANNER”列会显示操作系统和Oracle版本信息,包括是否为64位。 6. **SVRMGR**:SVRMGR是Oracle...

    jdbc学习文档

    下面是一段典型的JDBC使用示例,该示例展示了如何使用JDBC连接Oracle数据库并执行简单的查询操作: ```java package day01; import java.sql.Connection; import java.sql.DriverManager; import java.sql....

    oracle11g学习笔记

    OracleServiceORCL是典型的实例名,监听器是数据库与应用程序通信的桥梁,特别是使用JDBC连接时,需确保监听器运行正常。启动实例可以使用命令行工具如SQL*Plus,而管理监听器则通过lsnrctl命令。 Oracle中的数据...

    oracle 相关工具以及基础知识

    系统管理员(SYS)拥有最高权限,而普通用户通常通过分配角色和权限来访问特定资源。GRANT和REVOKE语句用于管理这些权限。 在备份与恢复方面,Oracle支持多种策略,如RMAN(Recovery Manager)、冷备份和热备份。...

    在Oracle 8x实现自动断开后再连接

    我们可以编写一个后台任务来定时执行,从而判断是否存在这样的用户连接,如果存在,则通过后台任务将其自动断开。首先创建一个存储过程来完成空闲一定时间用户的识别和断开工作,然后添加一个后台任务来定时(根据...

    Java调用oracle存储过程通过游标返回临时表

    1. **建立数据库连接**:使用JDBC(Java Database Connectivity)驱动,通过`DriverManager.getConnection()`方法建立到Oracle数据库的连接。 2. **预编译SQL语句**:使用`PreparedStatement`对象,预编译包含存储...

    oracle如何连上服务器.doc

    创建新用户通常需要使用超级用户Sys登录,然后通过SQL命令行或者图形化工具(如SQL*Plus、PL/SQL Developer或Toad for Oracle)进行操作。例如,创建名为ccc的新用户,可以使用以下命令: ```sql CREATE USER ccc ...

    用Java实现SQL_Server到Oracle数据迁移

    创建用户并赋予连接和资源角色,同时授权执行sys.dbms_stats包,以便后续进行统计信息的处理。 2. **设置Oracle会话属性** 连接到新创建的用户ct,并设置会话的NLS参数,包括语言(SIMPLIFIED CHINESE)、领土...

    Oracle连接方法

    Class.forName ("oracle.jdbc.driver.OracleDriver");//确保该驱动正确加载 Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@ip address:1521:ORA1", "scott", "tiger"); Statement stmt = ...

    oracle详细笔记整理

    在Java应用程序中,通过JDBC连接Oracle数据库,需要指定如下参数: - `driver`:指定JDBC驱动类,即`oracle.jdbc.driver.OracleDriver`。 - `url`:数据库连接URL,格式为`jdbc:oracle:thin:@hostname:port/service_...

Global site tag (gtag.js) - Google Analytics