好久没用oracle数据库了,今天打开连系统管理员密码也忘了,好多权限的操作命令也忘了,于是自己网上找了下解决方法如下:
首先启动oracle数据库
1.正常普通连接进入:sqlplus scott/tiger
或者以管理员身份登录:sqlplus sys/password as sysdba
2.如果忘记了系统管理员密码:
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\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/
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 用户名;
grant create view 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