progressbar personalizar new definicion java database oracle sys

personalizar - ¿Cómo conectarse en java como SYS a Oracle?



text field java (7)

¿Puedes usar un objeto OracleDataSource?

public class Database { static OracleDataSource ods; public static Connection openConnection(String URL, String user, String password, String option) throws SQLException { Connection conn = null; Properties properties = new Properties(); properties.put("user", user); properties.put("password", password); ods = new OracleDataSource(); ods.setURL(URL); if(option != null) { properties.put("internal_logon", option); } ods.setConnectionProperties(properties); conn = ods.getConnection(); return conn; } }

Y llámalo así:

Connection con = null; con = Database.openConnection("YourJDBCConnectionURL", "YourSYSUser", "YourSYSPassword", "sysdba");

Recibo este error:

java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

¿Como arreglar? (Necesito ser SYS ). Gracias.


Este codigo funciona

String driverName = "oracle.jdbc.driver.OracleDriver"; Class.forName(driverName).newInstance(); String nameForConnect = "sys as sysdba"; String pass = "password"; String url = "jdbc:oracle:thin:@192.168.0.1:1521:ORCL"; Connection conn = DriverManager.getConnection(url, nameForConnect, pass);


Necesitas poner sysdba con el parámetro String del usuario como

String user="sys as sysdba"


Respuestas ya allí,

está intentando conectarse como sys pero el servidor lo permite

ya sea sys as sysdba

o

sys as sysoper

simplemente cambia el parámetro de usuario como uno de los anteriores

user=''sys as sysdba''

o

user=''sys as sysoper''


Si desea conectar su base de datos con un usuario que no sea "sys" como "sysdba", debe cambiar el controlador de "thin" a "oci" para establecer la conexión correcta.

try { Class.forName("oracle.jdbc.driver.OracleDriver"); String DB_URL="jdbc:oracle:oci:@localhost:1521:orcl"; OracleDataSource ds1=new OracleDataSource(); Properties prop1 = new Properties(); prop1.setProperty("user","ravi"); prop1.setProperty("password","******"); prop1.setProperty("internal_logon","sysdba"); ds1.setConnectionProperties(prop1); ds1.setURL(DB_URL); OracleConnection conn1 = (OracleConnection)ds1.getConnection(); Statement stmt = conn1.createStatement(); ResultSet rs = stmt.executeQuery("select * from dba_users"); while (rs.next()) System.out.println(rs.getString(1)); conn1.close(); } catch (Exception e) { System.out.println(e); }


Si ha intentado conectarse a la base de datos de esta manera: connect SYS/<password> ha usado una sintaxis que ya no es válida (después de Oracle 9i).

En su lugar, intente conectarse como lo siguiente:

connect SYS/<password> as SYSDBA or connect SYS/<password> as SYSOPER


prueba esto :

import java.sql as jsql import java.lang as lang driver, url, user, passwd = ( "oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@localhost:1234:xxx1", "sys as sysdba", "xxx1") lang.Class.forName(driver) c = jsql.DriverManager.getConnection(url,user,passwd)