web-dev-qa-db-ja.com

SYSとしてOracleにJavaとして接続するには?

私はこのエラーを受け取ります:

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

直し方? (私はSYSである必要があります)。ありがとう。

29
user710818

これを試して :

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)
37
simplycurious

すでに答えがありますが、

sysとして接続しようとしていますが、サーバーは許可します

sys as sysdba

または

sys as sysoper

上記のいずれかとしてユーザーパラメータを変更するだけです

user='sys as sysdba'

または

user='sys as sysoper'
10
RahulArackal

このコードは動作します

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);
8
Alexander

次のようにデータベースに接続しようとした場合:connect SYS/<password>無効な構文を使用しました(Oracle 9i以降)。

代わりに、次のように接続してみてください。

connect SYS/<password> as SYSDBA or connect SYS/<password> as SYSOPER
5
Korhan Ozturk

次のようなユーザー文字列パラメータでsysdbaを配置する必要があります

String user="sys as sysdba"
1
Neha Gangwar

「sys」以外のユーザーを「sysdba」としてデータベースに接続する場合は、ドライバーを「thin」から「oci」に変更して、正常に接続する必要があります。

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);
    }
1

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;
    }
}

そして、次のように呼び出します:

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