我建了个oracle817,软件装上了,现在建数据库,我是使用密码文件认证的,数据库建好后,我能用
sys/sys as sysdba登上
可是用system/manager 怎么登不上呀?我是使用手工创建数据库的,密码文件的sys密码就是sys
sys/sys as sysdba登上
可是用system/manager 怎么登不上呀?我是使用手工创建数据库的,密码文件的sys密码就是sys
#########################################################################
SQL> conn sys/sys as sysdba
Connected.
SQL> alter user system
2 identified by system;
User altered.
SQL> select username from dba_users;
USERNAME
------------------------------------------------------------
SYS
SYSTEM
OUTLN
DBSNMP
WAXBIN
SQL> conn system/system
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
SQL>
据我所知这算DDL,应该是隐式提交的
还是不行:
SQL> conn sys/sys as sysdba
Connected.
SQL> alter user system
2 identified by system;
User altered.
SQL> commit;
Commit complete.
SQL> conn system/system
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
SQL>
真的怪了我在sqlnet.ora里面的认证配置是:
---------------------------------------------------
NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)sqlnet.authentication_services = securid
---------------------------------------------------
Connected to Oracle8i Enterprise Edition Release 8.1.7.0.0
Connected as SYSSQL> alter user system identified by system;User alteredSQL> commit;Commit completeSQL> conn syste/manager;
Not logged onSQL> conn system/system;
Connected to Oracle8i Enterprise Edition Release 8.1.7.0.0
Connected as systemSQL>
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/product/817
我写了个shell来自动创建数据库,而且创建也很顺利,sys/sys as sysdba 也能登陆,就是system 以及其他自己建的用户就登不上去。
我把我的shell部分贴出来吧,有点长,请慢慢看,
====创建数据库=======================================================
su - oracle >/opt/oracle/admin/misdb1/db_creation.log <<EOF
sqlplus /nolog
conn sys/sys as sysdba
startup nomount
-- create a pure database
create database misdb1
logfile
group 1 '/opt/oracle/oradata/misdb1/redo01a.log' size 20M,
group 2 '/opt/oracle/oradata/misdb1/redo02a.log' size 20M,
group 3 '/opt/oracle/oradata/misdb1/redo03a.log' size 20M
datafile
'/opt/oracle/oradata/misdb1/system01.dbf' size 200M
autoextend on next 50M maxsize unlimited
maxdatafiles 50
maxinstances 4
maxlogfiles 16
character set ZHS16GBK
national character set ZHS16GBK
/
-- add catalog
@@/opt/oracle/product/817/rdbms/admin/catalog.sql
-- craete a temp system rollback segment 'r00'
create rollback segment r00 tablespace system
storage (initial 32k next 32k minextents 2 maxextents 100)
/
alter rollback segment r00 online
/
-- create a tablespace 'rbs' for rollback segments
create tablespace rbs
datafile
'/opt/oracle/oradata/misdb1/rbs01.dbf' size 50M,
'/opt/oracle/oradata/misdb1/rbs02.dbf' size 50M
default storage (
initial 2M
next 1M
pctincrease 0
minextents 9
maxextents 300 )
/
-- create rollback segments 'r01'..'r15'
create rollback segment r01 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r02 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r03 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r04 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r05 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r06 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r07 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r08 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r09 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r10 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r11 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r12 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r13 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r14 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
create rollback segment r15 tablespace rbs
storage (initial 128k next 128k minextents 20)
/
alter rollback segment r01 online
/
alter rollback segment r02 online
/
alter rollback segment r03 online
/
alter rollback segment r04 online
/
alter rollback segment r05 online
/
alter rollback segment r06 online
/
alter rollback segment r07 online
/
alter rollback segment r08 online
/
alter rollback segment r09 online
/
alter rollback segment r10 online
/
alter rollback segment r11 online
/
alter rollback segment r12 online
/
alter rollback segment r13 online
/
alter rollback segment r14 online
/
alter rollback segment r15 online
/
alter rollback segment r00 offline
/
-- create tablespace 'users'
create tablespace users
datafile
'/opt/oracle/oradata/misdb1/users01.dbf' size 100M
default storage (
initial 1M
next 512K
pctincrease 0
minextents 9
maxextents 300 )
/
-- create tablespace 'temp'
create temporary tablespace temp
tempfile
'/opt/oracle/oradata/misdb1/temp01.dbf'
extent management local uniform size 100M
/
-- create tablespace 'index'
create tablespace index
datafile
'/opt/oracle/oradata/misdb1/index01.dbf' size 100M
default storage (
initial 1M
next 512K
pctincrease 0
minextents 9
maxextents 300 )
/
-- create tablespace fb
create tablespace fb
datafile
'/opt/oracle/oradata/misdb1/fb01.dbf' size 100M
autoextend on next 50M maxsize unlimited
default storage (
initial 2M
next 1M
pctincrease 0
minextents 9
maxextents 300 )
/
-- run 'catproc.sql'
@@/opt/oracle/product/817/rdbms/admin/catproc.sql
-- run 'catexp.sql' for exp and imp
@@/opt/oracle/product/817/rdbms/admin/catexp.sqlconn system/manager
-- add sqlplus help
@@/opt/oracle/product/817/sqlplus/admin/help/helpbld.sql helpus.sqlshutdown immediate
quit
EOF
================================================
创建初始化参数文件,里面有remote_login_passwordfile = exclusive
创建密码文件$ORACLE_HOME/dbs/orapwmisdb1(我要创建的数据库SID=misdb1)
在$ORACLE_HOME/network/admin/sqlnet.ora里加了下面一行:
sqlnet.authentication_services = securid
然后就接着上面的操作了
我在sqlnet.ora里加了下面的这一行:
sqlnet.authentication_services = securid
因为我在安装oracle的时候,当提示"authentication method"时我选的是securid。
但是时实,这里指定的是oracle将支持的所有认证方法,好像认证还挺多的,待我看看文档吧。我肯定是这出错了。
sqlnet.authentication_services = securid
改为
sqlnet.authentication_services = (beq,securid)
就一切OK了。其中可选的认证有:beq,none,all,kerberos5,cybersafe,securid,identitx
没想到就犯在beq上面!
密码一定要用""