- 浏览: 128789 次
- 性别:
- 来自: 北京
-
最新评论
-
yangtaoxf126.com:
public class SimpleJDBC {
publ ...
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();
}
}
经过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();
}
}
}
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();
}
}
}
发表评论
-
[分享]SQL列转行
2009-09-13 14:15 3492在做一些视图,报表或者查询的时候,列转行是必须要做的,甚至有多 ... -
行列转换等经典SQL语句
2009-09-10 18:22 7131.--行列转换 原表: 姓名 科目 成绩 ... -
oracle 创建数据库
2009-09-06 14:58 0oracle 管理分级 是根据 用户名来的。 上一级是sys, ... -
oracle 创建 sequence
2009-09-06 14:55 1697create sequence emp_sequence ... -
SQL Server中Case 的不同用法
2009-08-09 17:13 1448CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能 ... -
sqlserver使用SQL 把查询的结果连接起来
2009-08-09 17:11 1059使用SQL变量 把查询的结果连接起来 Declare @tm ... -
MySQL存储过程例子,包含事务,输出参数,嵌套调用,游标,循环等等
2009-08-09 17:00 1174drop procedure if exists pro_re ... -
如何在Sql Server 2000中用一条语句实现树的查询
2009-08-09 16:59 1694以公司的网站栏目表为例,表结构(表名:Subject)如下: ... -
sql server日期比较、日期查询常用语句(转)
2009-08-09 16:58 3941sql server日期比较、日期 ...
相关推荐
本文将深入探讨如何通过Java的JDBC接口以sys用户连接到Oracle数据库,并解决可能遇到的问题。 首先,我们需要了解JDBC的基本概念。JDBC是Java API,它提供了一组接口和类,使得Java应用程序能够与各种类型的数据库...
Java通过JDBC连接Oracle数据库是开发中常见的任务,它允许我们与Oracle数据库进行交互,执行SQL语句,处理结果集等。以下是一个详细的步骤指南,以及相关知识点的介绍。 1. **下载Oracle数据库驱动**: Oracle ...
Oracle提供了一个名为JDBC-OCI的驱动,它是Java Database Connectivity (JDBC) 驱动的一种类型,通过JNI(Java Native Interface)调用底层的OCI接口来实现数据库连接。开发者可以在Java代码中配置JDBC URL,指定oci...
以上代码演示了如何使用JDBC连接到MySQL数据库,并给出了如何连接到Oracle和DB2数据库的示例。实际应用中,为了增强代码的灵活性和可维护性,建议将数据库连接信息(如URL、用户名和密码)存储在配置文件中,而不是...
- **格式要求**:在Java应用程序中使用JDBC连接Oracle数据库时,正确的URL格式对于避免ORA-01017等错误至关重要。 - 正确的URL格式: ```plaintext jdbc:oracle:thin:@localhost:1521/YXSYSPDB ``` - 注意事项...
通过使用 Spring JdbcTemplate 调用 Oracle 存储过程,我们可以实现 CRUD 操作。我们的示例代码展示了如何使用 `P_EMP_SELECT` 和 `P_EMP_ADD` 存储过程来实现员工信息的查询和添加操作。 在实际应用中,我们可以...
`允许用户连接到数据库。 4. 授予只读权限:`GRANT SELECT ON 所需表名 TO 只读用户名;`,对于每个需要访问的表都需要执行一次此命令。 5. 若要允许只读用户访问所有用户下的所有表,可以使用`GRANT SELECT ANY ...
通过以上步骤,我们成功地在 Eclipse 中配置了与 Oracle、SQL Server 和 MySQL 数据库的连接。这为后续进行数据库操作提供了基础。需要注意的是,在实际应用中还需要考虑到安全性问题,比如对敏感信息(如用户名和...
### WebLogic与Oracle数据库连接池配置详解 ...通过上述详细的步骤,我们可以确保WebLogic Server 7.0与Oracle数据库之间的连接池配置正确无误,从而为后续的应用开发提供稳定高效的数据库访问服务。
5. **区分64-bit/32-bit版本**:可以通过SQL*Plus连接到数据库,然后运行`SELECT * FROM v$version;`查询,其中的“BANNER”列会显示操作系统和Oracle版本信息,包括是否为64位。 6. **SVRMGR**:SVRMGR是Oracle...
下面是一段典型的JDBC使用示例,该示例展示了如何使用JDBC连接Oracle数据库并执行简单的查询操作: ```java package day01; import java.sql.Connection; import java.sql.DriverManager; import java.sql....
OracleServiceORCL是典型的实例名,监听器是数据库与应用程序通信的桥梁,特别是使用JDBC连接时,需确保监听器运行正常。启动实例可以使用命令行工具如SQL*Plus,而管理监听器则通过lsnrctl命令。 Oracle中的数据...
系统管理员(SYS)拥有最高权限,而普通用户通常通过分配角色和权限来访问特定资源。GRANT和REVOKE语句用于管理这些权限。 在备份与恢复方面,Oracle支持多种策略,如RMAN(Recovery Manager)、冷备份和热备份。...
我们可以编写一个后台任务来定时执行,从而判断是否存在这样的用户连接,如果存在,则通过后台任务将其自动断开。首先创建一个存储过程来完成空闲一定时间用户的识别和断开工作,然后添加一个后台任务来定时(根据...
1. **建立数据库连接**:使用JDBC(Java Database Connectivity)驱动,通过`DriverManager.getConnection()`方法建立到Oracle数据库的连接。 2. **预编译SQL语句**:使用`PreparedStatement`对象,预编译包含存储...
创建新用户通常需要使用超级用户Sys登录,然后通过SQL命令行或者图形化工具(如SQL*Plus、PL/SQL Developer或Toad for Oracle)进行操作。例如,创建名为ccc的新用户,可以使用以下命令: ```sql CREATE USER ccc ...
创建用户并赋予连接和资源角色,同时授权执行sys.dbms_stats包,以便后续进行统计信息的处理。 2. **设置Oracle会话属性** 连接到新创建的用户ct,并设置会话的NLS参数,包括语言(SIMPLIFIED CHINESE)、领土...
Class.forName ("oracle.jdbc.driver.OracleDriver");//确保该驱动正确加载 Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@ip address:1521:ORA1", "scott", "tiger"); Statement stmt = ...
在Java应用程序中,通过JDBC连接Oracle数据库,需要指定如下参数: - `driver`:指定JDBC驱动类,即`oracle.jdbc.driver.OracleDriver`。 - `url`:数据库连接URL,格式为`jdbc:oracle:thin:@hostname:port/service_...