代碼如下 -獲得 「值java.sql.SQLException:ORA-28009:連接,SYS應以SYSDBA或SYSOPER」 在常規
import groovy.sql.Sql
def driver = "oracle.jdbc.OracleDriver"
def jdbcUrl = "jdbc:oracle:[email protected]:1521:MYSID"
def sql = Sql.newInstance(jdbcUrl , "sys", "password", driver)
但我得到以下錯誤
Caught: java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
java.sql.SQLException: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:382)
at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:600)
at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:445)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:380)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:760)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:401)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
我嘗試將用戶替換爲'sys as sysdba',如this SO answer中所述。
我也嘗試使用
Properties props = new Properties()
props.put("user","sys")
props.put("password", "password")
props.put("internal_logon", "sysdba")
jdbcUrl = "jdbc:oracle:[email protected]:1521:MYSID"
def sql=Sql.newInstance(jdbcUrl,props)
的建議here
但在這裏我得到
Caused by: java.sql.SQLException: ORA-01017: invalid username/password; logon denied
有什麼建議?
爲什麼你想以SYS的身份登錄?這是一個令人難以置信的強大帳戶,應該很少使用。除非您正在構建專門用於DBA的應用程序來管理數據庫並在該應用程序中構建一個實際需要SYS提升權限的屏幕,否則您不希望使用該帳戶連接到數據庫。您希望使用權限較少的帳戶。 –
@JustinCave我正在做的事情只在線,我需要sys作爲sysdba來做到這一點。 –
不通過應用程序以sys身份登錄,創建用戶,授予他們DBA並與他們連接 – kevinsky