我遇到类似的问题。就是如果在本机,随便敲个用户名、密码,服务名要对,用sysdba都能登陆。如:SQL*Plus: Release 8.1.7.0.0 - Production on 星期日 7月 28 21:26:31 2002(c) Copyright 2000 Oracle Corporation. All rights reserved. 连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production With the Partitioning option JServer Release 8.1.7.0.0 - ProductionSQL> connect aaa/aaa@suntec as sysdba 已连接。 SQL> show user USER 为"SYS"但在客户端机器上是无法登录到服务器的
楼上是否是以nolog打开sqlplus?在这个时候可能是以软件属主身份连接了。相当于conn / as sysdba
tlbbqf(为伊消的人憔悴) 见贴后试了一下,在客户端机器上登录服务器(aaa用户不存在) SQL> conn aaa/aaa@asc as sysdba Connected. SQL> show user USER is "SYS"难道这是oracle的一个安全漏洞???
我这边没有这个问题,为什么?Connected to: Oracle8i Enterprise Edition Release 8.1.7.2.0 - 64bit Production With the Partitioning option JServer Release 8.1.7.2.0 - 64bit ProductionSQL> conn dev/[email protected] as sysdba ERROR: ORA-01031: insufficient privileges Warning: You are no longer connected to ORACLE.
SQL*Plus: Release 8.1.6.0.0 - Production on Mon Jul 29 12:21:49 2002(c) Copyright 1999 Oracle Corporation. All rights reserved. Connected to: Oracle8i Enterprise Edition Release 8.1.7.2.0 - 64bit Production With the Partitioning and Parallel Server options JServer Release 8.1.7.2.0 - 64bit ProductionSQL> conn aaa/aaa@n1 as sysdba ERROR: ORA-01031: insufficient privileges Warning: You are no longer connected to ORACLE.
各位大虾: 这个问题在我的机器上确实存在,决非小弟胡言乱语。服务器上的oracle8.1.7是从网上下载的。 一开始我只是想看一下以sysdba登陆权限不够时的出错信息,没想到竟然成功登陆,后来才发现新建用户也可以。今天早上看了tlbbqf(为伊消的人憔悴)的贴子后再试,更是发现任意输入用户名和密码都可以,而且也确实有权限操作数据库。自己弄不懂,资料查不到。又试了一下(df也是一个不存在的用户) SQL*Plus: Release 8.1.7.0.0 - Production on Mon Jul 29 13:36:47 2002(c) Copyright 2000 Oracle Corporation. All rights reserved.SQL> conn aaa/aaa@asc as sysdba Connected. SQL> select * from v$pwfile_users;USERNAME SYSDB SYSOP ------------------------------ ----- ----- INTERNAL TRUE TRUE SYS TRUE TRUESQL> conn df@asc as sysdba Enter password: ** ERROR: ORA-01017: invalid username/password; logon denied Warning: You are no longer connected to ORACLE. SQL> conn df/df@asc as sysdba Connected.
这个组的描述为:Members can connect to the Oracle database as a DBA without a password。在os认证的基础上并不是每个user都可以connect的,而是要有ora_dba权限的user才可以connect without psw的。这应该更合实际,对吧?
连接到:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - ProductionSQL> connect aaa/aaa@suntec as sysdba
已连接。
SQL> show user
USER 为"SYS"但在客户端机器上是无法登录到服务器的
见贴后试了一下,在客户端机器上登录服务器(aaa用户不存在)
SQL> conn aaa/aaa@asc as sysdba
Connected.
SQL> show user
USER is "SYS"难道这是oracle的一个安全漏洞???
Oracle8i Enterprise Edition Release 8.1.7.2.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.2.0 - 64bit ProductionSQL> conn dev/[email protected] as sysdba
ERROR:
ORA-01031: insufficient privileges
Warning: You are no longer connected to ORACLE.
SQL*Plus: Release 8.1.6.0.0 - Production on Mon Jul 29 12:21:49 2002(c) Copyright 1999 Oracle Corporation. All rights reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.2.0 - 64bit Production
With the Partitioning and Parallel Server options
JServer Release 8.1.7.2.0 - 64bit ProductionSQL> conn aaa/aaa@n1 as sysdba
ERROR:
ORA-01031: insufficient privileges
Warning: You are no longer connected to ORACLE.
这个问题在我的机器上确实存在,决非小弟胡言乱语。服务器上的oracle8.1.7是从网上下载的。
一开始我只是想看一下以sysdba登陆权限不够时的出错信息,没想到竟然成功登陆,后来才发现新建用户也可以。今天早上看了tlbbqf(为伊消的人憔悴)的贴子后再试,更是发现任意输入用户名和密码都可以,而且也确实有权限操作数据库。自己弄不懂,资料查不到。又试了一下(df也是一个不存在的用户)
SQL*Plus: Release 8.1.7.0.0 - Production on Mon Jul 29 13:36:47 2002(c) Copyright 2000 Oracle Corporation. All rights reserved.SQL> conn aaa/aaa@asc as sysdba
Connected.
SQL> select * from v$pwfile_users;USERNAME SYSDB SYSOP
------------------------------ ----- -----
INTERNAL TRUE TRUE
SYS TRUE TRUESQL> conn df@asc as sysdba
Enter password: **
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
SQL> conn df/df@asc as sysdba
Connected.
1。我公司机子(非昨天家里机器)。
在本机上用任意帐号,甚至不存在的帐号都能以sysdba登上去。
客户端则不能如此。并且无法用system,scott等实际上具有dba权限的帐号以sysdba,sysoper登录,只有internal可以。
2。公司一台HP服务器。
在本机和客户端上都无法用system,scott等实际上具有dba权限的帐号以sysdba,sysoper登录,只有internal可以。问题:
1。 本机用任意帐号登录是不应该的,正如zhoubf725(天上的鸟,怎能踢到) 所说可能是以nt帐号登录,就如sql server的windows authentication登录,如何能去掉这种登录方式呢?
2。为什么具有dba权限的帐号无法登录,而只有internal可以登录呢?事实上,在我维护的数个客户系统中,都是可以登录的。现在这数台机器出现问题,问题在什么地方呢?
哦,对了。我这些测试都在dos下,进入svrmgrl,用connect来连接的。没有用nolog来登陆
如果你用密码文件认证客户端也是可以 / AS SYSDBA连上去的.
这时ORACLE的管理方式非BUG
你说的有些道理。还有不明白的地方
1.如果as sysdba是操作系统认证,那么你说的密码文件认证客户端如何设呢?
2.为什么具有dba权限的用户无法以sysoper,sysdba登录呢?而只有internal可以呢?
1.建立密码文件
$orapwd file=$ORACLE_HOME/dbs/orapwdSID password=admin entries=10 ;
设置INIT.ORA 的REMOTE_LOG_PASSWORD TO EXCLUSIVE OR SHARED;
2.ORACLE真正的DBA 只有INTERNAL.其他的如SYSTEM,SYS只是有特殊权限的普通用户.
init.ora
remote_os_authent=true
remote_os_role=true
remote_os_prifex='OPS$'sqlnet.ora
authent.xxx={NTS}===>authent.xxx={NONE}
你说的在init.ora中设定
remote_os_authent=true
remote_os_role=true
remote_os_prifex='OPS$'
有问题,设好后,在启动oracle,回报错:
LRM-00101: unknown parameter name 'remote_os_role'
LRM-00101: unknown parameter name 'remote_os_prifex'
ORA-01078: 处理系统参数失败
只有remote_os_authent=true可以通过,但是无效,在本机仍然可以随意以sysdba登陆。
我印象中我在给我们公司几个客户维护时,是可以用sysoper登陆,但我现在在客户端也无法登陆。
to wzcyc(oracle):
能否详细一点在哪里建?
xxx等字符记不清啦。
我本来就是这样设的呀。还是轻易登陆成功
这不是oracle 的安全漏洞!!而是认证方式不同,一般对sysdba的管理有两种方式:操作系统认证和密码文件认证。
将SQLNET.AUTHENTICATION_SERVICES= (NTS),即选择了os认证方式。 这样数据库的安全性就是基于操作系统的安全性之上的。既然用connect internal可以登入,那用connect aaaaaa/aaaaaa as sysdba登入又何妨?谁能告诉我这两种方式在安全性上有何区别?是吧!
你是对的!
区别我想这儿已经很明显,是os认证或oracle认证,sql server里也有。
遵守诺言,我开一个帖子,你去领分。
谢谢!
我要怎么领分?
还有一点,如果是nt平台,需要有一个ora_dba组,并且你登入的用户要加到这个组中才可以。
http://www.csdn.net/expert/topic/987/987934.xml?temp=.2742884
回答一下就行。
能说的具体点吗?
你指的这个组用来做什么?是用来让所有这个组里的用户都能通过os验证登录?这从安全性来说应该不允许呀。如果是登录到域,有过登录主域验证。是不是可以绕过oracle认证。实际应用上,我不认为可以这样做