首先本人的用的是windows server 2003 下的oracle 11g:
1、登录connect scott/tiger 时提示:
ERROR:
ORA-28000: 帐户已被锁定
解决方法:conn / as sysdba 以sys身份登录数据库
alter user scott account unlock;
再次登录即可
2、上述的scott的状态怎么知道是lock或是unlock呢?
以sys身份登录 conn / as sysdba
利用数据字典进行查看:dba_users
首先要知道dba_users中的字段有哪些 desc dba_users
用到的字段是: username,account_status
知道了这些那么可以用 select username,account_status from dba_users where username='SCOTT';
查询的结果是:
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
SCOTT OPEN
要知道更多的用户lock信息时候可以应用上述同样的方法进行完成,同样的也可知道都有哪些用户
报错: TNS:net service name is incorrectly specified
3、完成了上述的实验,问题来了,为啥conn / as sysdba 能登陆上去能?
这个需要解释一下,应用conn / as sysdba 连接时 属于系统验证 也就是说必需要是本机上的oracle
将到此本人总结一下连接的多种方法:
普通用户连接:conn username/pwd [@connt_alias]
超级用户连接:conn username/pwd [@connt_alias] as sysdba
conn username/pwd [@connt_alias] as sysoper
conn / as sysdba
conn / as sysoper
解释:第一种连接是通过普通的数据字典身份验证并且数据库应当处于open方式
第二、三种方式是通过外部口令文件来完成认证的
最后两种是操作系统进行的身份认证
注意:后四种都是可以对数据库进行启动和关闭,并且不管数据库在什么状态都可以连接(即使数据库尚未创建)