程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 為什麼Oracle中只能用sys和system登錄

為什麼Oracle中只能用sys和system登錄

編輯:Oracle數據庫基礎

【賽迪網-IT技術報道】Oracle Sys用戶用默認密碼change_on_install 無法登錄的問題(錯誤代碼:ORA-28009)

在使用默認Oracle自帶的SQL Plus登錄數據庫時(如下圖),使用system用戶默認密碼manager登錄沒有問題。

但是同樣的輸入用戶sys和默認密碼change_on_install確無法登錄.

報錯如下:

ERROR:

ORA-28009: connection to sys should be as sysdba or sysoper

問題分析:

用法: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]

其中 : : = [/][@] | /如果以sys用戶登錄的話要以完整格式登錄!!

解決辦法:

1.用system用戶登錄,然後按完整格式卻換到sys用戶:

SQL> conn sys/change_on_install@zgctwo as sysdba

已連接。2.在上圖的登錄界面的主機字符串後面接上字符串 as sysdba:

 

(2)熟手解決方法:

環境win2000 server Oracle8.1.7

SQL> create tablespace price datafile 'price.ora' size 10M; 表空間已創建。

SQL> drop tablespace price; 表空間已丟棄。

SQL> create tablespace plate datafile 'plate.ora' size 10M; 表空間已創建。

SQL> create user plate identifIEd by plate default tablespace plate; 用戶已創建

SQL> grant connect,resource to plate; 授權成功。

SQL> connect plate/plate 已連接。

SQL>

// 關閉數據庫

Microsoft Windows ;2000 [Version 5.00.2195]

(C) 版權所有 1985-2000 Microsoft Corp.

C:\Documents and Settings\Administrator>svrmgrl

........

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production

With the Partitioning option

JServer Release 8.1.7.0.0 - Production

SVRMGR> connect internal/Oracle

連接成功。

SVRMGR> shutdown immediate

已關閉數據庫。

已卸下數據庫。

已關閉 Oracle 實例。

// 將數據文件plate.ora刪除,模擬數據文件丟失

SVRMGR> startup

已啟動 Oracle 實例。

系統全局區域合計有 29431836個字節

Fixed Size 75804個字節

Variable Size 28459008個字節

Database Buffers 819200個字節

Redo Buffers 77824個字節

已裝入數據庫。

ORA-01157: ????/?????? 8 - ??? DBWR ????

ORA-01110: ???? 8: 'D:\Oracle\ORA81\DATABASE\PLATE.ORA'

// 數據庫打開失敗,將錯誤的數據文件offline drop

SVRMGR> alter database datafile 'd:\Oracle\ora81\database\plate.ora' offline drop;

語句已處理。 

// 數據庫打開成功

SVRMGR> alter database open;

語句已處理。

SVRMGR>

// sql*plus中,處理善後工作,刪除相關聯的表空間

SQL> connect internal/Oracle

已連接。

SQL> col name format a50

SQL> select name,status from v_$datafile;

NAME STATUS

------------------------------ -------

D:\Oracle\ORADATA\ORAL\SYSTEM01.DBF SYSTEM

D:\Oracle\ORADATA\ORAL\RBS01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\USERS01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\TEMP01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\TOOLS01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\INDX01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\DR01.DBF ONLINE

D:\Oracle\ORA81\DATABASE\PLATE.ORA OFFLIN

已選擇8行。

SQL> drop tablespace plate; 表空間已丟棄。

SQL> col name format a33

SQL> col name format a35

SQL> col name format a50

SQL> select name,status from v_$datafile;

NAME STATUS

-------------------------------------------------- -------

D:\Oracle\ORADATA\ORAL\SYSTEM01.DBF SYSTEM

D:\Oracle\ORADATA\ORAL\RBS01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\USERS01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\TEMP01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\TOOLS01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\INDX01.DBF ONLINE

D:\Oracle\ORADATA\ORAL\DR01.DBF ONLINE

已選擇7行。

SQL>

安裝有Oracle的計算機請一定注意不要隨便執行P(如下代碼)刪除

因為Oracle的日志文件記錄著用戶的信息,如果刪除那麼就只能使用sys 和system來登錄了

要想恢復很復雜。 作為DBA,一定要注意server版的os很嚴格,切勿刪除不明白來源的文件,

無論刪除任何系統文件都要進行備份

我曾使用以下代碼在server2003上執行.reg文件,導致Oracle非系統默認用戶不能登錄

結果只有從新安裝 Oracle

@echo off

echo wait......

del /f /s /q %systemdrive%\*.tmp

del /f /s /q %systemdrive%\*._mp

del /f /s /q %systemdrive%\*.log

del /f /s /q %systemdrive%\*.gid

del /f /s /q %systemdrive%\*.chk

del /f /s /q %systemdrive%\*.old

del /f /s /q %systemdrive%\recycled\*.*

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved