服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

为什么oracle中只能用sys和system登录

【赛迪网-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\*.*

扫描关注微信公众号