windows oracle 忘記密碼 解決辦法
阿新 • • 發佈:2019-01-27
好久沒用oracle資料庫了,今天開啟連繫統管理員密碼也忘了,好多許可權的操作命令也忘了,於是自己網上找了下解決方法如下:首先啟動oracle資料庫 dbhome_1\database\pwdctcsys.ora我的ORACLE_HOME目錄在: C:\app\jiangfeng\product\11.2.0\dbhome_1\則:以admin身份執行開啟視窗,執行命令:orapwd file=C:\app\jiangfeng\product\11.2.0\dbhome_1\database\PWDorcl.ora password=password entries=10 force=y;這個命令重新生成了資料庫的密碼檔案。密碼檔案的位置在ORACLE_HOME目錄下的\database目錄下。force=y表示強制跟新覆蓋,這個密碼是修改sys使用者的密碼。除sys其他使用者的密碼不會改變。 以上參考:http://blog.itpub.net/26015009/viewspace-717505/ grant create view to 使用者名稱;
1.正常普通連線進入:sqlplus scott/tiger
或者以管理員身份登入:sqlplus sys/password as sysdba2.如果忘記了系統管理員密碼:
2.1 可以先匿名登入: sqlplus /nolog
在用本地sid協議的登入: conn / sysdba如果登不上,報錯2.2 用orclre例項sid登入
設定環境變數ORACLE_SID的值為你想登入的oracle例項的SID:set ORACLE_SID=orcl
2.3 該本地oracle的檔案:pwdctcsys
再登不上還可以去改本地檔案pwdctcsys 目錄一般為:ORACLE_HOME\3. 關於改使用者的密碼:
系統管理員帳戶先解鎖:alter user CHEPC account unlock; (oracle預設使用者才解鎖,自己建的略過次步驟) 在改密碼:alter user CHEPC identified by password;另外: select distinct owner from all_objects; 檢視當前使用者授權:grant create session to 使用者名稱;grant create table to 使用者名稱;grant create tablespace to 使用者名稱;4.資料庫的啟動指令碼(mysql和oracle)
附上:啟動oracle資料庫的bat指令碼檔案:(前一半命令是獲取系統admin許可權)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 軟媒魔方自動新增批處理檔案管理員許可權 ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
CLS
ECHO.
:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
ECHO ********************************
ECHO 請求 UAC 許可權批准……
ECHO ********************************
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 以下為需要執行的批處理檔案程式碼 ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rem 本行以下可修改為你需要的bat命令(從上面三行冒號開始到下面都可刪改)
@echo off
:dosmenu
REM 選擇選單
echo #**********************************************************************#
echo Windows 服務啟動指令碼
echo #**********************************************************************#
echo 命令相關引數說明如下 快速切換
echo #**********************************************************************#
echo.
echo [1]啟動 mysql [2]關閉mysql [3]啟動oracletest [4]關閉oracletest [5]關閉
echo.
echo #**********************************************************************#
set /P CHS= 請選擇: [1],[2],[3],[4],[5]
if /I "%CHS%"=="1" (
goto aaaa
)
if /I "%CHS%"=="2" (
goto bbbb
)
if /I "%CHS%"=="3" (
goto cccc
)
if /I "%CHS%"=="4" (
goto dddd
)
if /I "%CHS%"=="5" (
goto zzzz
)
:aaaa
rem 開啟mysql
net start "mysql"
pause
cls
goto dosmenu
goto dosmenu
:bbbb
rem 關閉mysql
net stop "mysql"
pause
cls
goto dosmenu
:cccc
REM 啟動oracletest
net start "OracleServiceORCL"
net start "OracleOraDb11g_home1TNSListener"
pause
cls
:dddd
rem 關閉oracletest
net stop "OracleOraDb11g_home1TNSListener"
net stop "OracleServiceORCL"
pause
cls
goto dosmenu
:zzzz
REM 退出
exit