Oracle 用户角色 system scott 更改密码

如果system的密码忘了怎么办?

首先,

 

cmd

sqlplus "/ as sysdba"

方法进入sqlplus

SQL> conn /as sysdba

Connect.

SQL> alter user system identified by manager;

User altered.

SQL>commit;

Commit complete.

SQL>conn system/manager;

Connected.

到此这个问题也解决。

用SQL Plus登录时输入:conn scott/tiger

给出提示:

          ERROR:

          ORA-28000: the account is locked

         

解决方法:

解决:

(1)以DBA的身份登录另一个用户,输入:

     c:> sqlplus sys/test1234 as sysdba

(2)为scott解锁,输入:

       alter user scott account unlock;

     给出提示:

         

          用户已更改。

         

          SQL> conn scott/tiger

          ERROR:

          ORA-28001: the password has expired

         

          更改 scott 的口令

          新口令:

(3)输入新的密码.

 

测试、运行程序时,一般使用服务器上的oracle服务,2010年春节后第一天来上班,服务器整体down掉了,所以只好使用本机的oracle服务,是两年装的,连system的密码都不记得了。

 

首先,开启本地的oracle服务,开始-->设置-->按制面板-->管理工具-->服务 按字母“O”很快找到oracle相关的九个服务,OracleOraDb10g_home1TNSListener 服务一般是开着的,因为开发人员一般都要在自己的机子上使用客户端连接远程的数据库服务器,如果大家没有开就开一下吧。OracleServiceORCL 服务,准确的说应该是OracleServiceSID服务,我的SID是的oracle默认的ORCL,所以就是OracleServiceORCL ,也开启,OK了。

其次,在NET Manager 中配置一个服务命名,记得以前在NET Manager中是会自动配置一个本地的服务命名的,好像是叫LOCAL,但是在oracle 10中没有,应该不会是我两年前删除了!那就自己配置吧,就那么几步,很简单了,到了最后测试,默认使用scott /tiger 进行测试,出现ora-280000 the account is locked 提示,换system /manager 也是ora-280000 the account is locked ,账号也锁定,看来得解决这个问题。

 

解决ora-280000 the account is locked的问题:

开始-->运行-->cmd 进行DOS界面

输入:sqlplus.exe / as sysdba;

SQL>alert user scott account unlock;

User altered.

sql>commit;

Commit complete.

SQL>conn scott/tiger

ERROR:

ORA-28001:the password has expired

Change password for scott

New passoword:

Retype new password

Password changed

Connect.

SQL>commit;

Commit complete.

 

这个时候使用scott/新的密码进行net manager测试可以成功,这样就解决了ora-280000 the account is locked的问题

 

当使用同样的方法解决system登录时的ora-280000 the account is locked问题时:出现下面问题

SQL> con system/manager

ERROR:

ORA-01017:invalid username/password ;logon denied

Warning :You are no longer connect to ORACLE.

 

改了密码试了N次,不行,这意味着我忘记了system的密码,呵呵,毕竟两年了。

其实不管在Net manager中是否配置了本地服务命名,使用SQL plus 都可以连接服务器,只要不写相应的Host String 就可以。

 

最近两个朋友问我同样的问题,他们发现里面有一个账户总是莫名其妙的被锁住,不知道是什么原因。

    我首先想到的是用户default profiles中的failed_login_attempts参数设置问题,然后扩展的问题是这个参数的精确含义及相关值查询。

   结果如下:

  

   1. 查询failed_login_attempts参数默认值:

      (备注:9i环境中此参数的值为unlimited)

      SQL> conn / as sysdba

       Connected.

       SQL> desc dba_profiles;

        Name                                      Null?    Type

        ----------------------------------------- -------- ----------------------------

        PROFILE                                   NOT NULL VARCHAR2(30)

        RESOURCE_NAME                             NOT NULL VARCHAR2(32)

        RESOURCE_TYPE                                      VARCHAR2(8)

        LIMIT                                              VARCHAR2(40)

      

       SQL> select resource_name, limit from dba_profiles where resource_name = 'FAILED_LOGIN_ATTEMPTS';

      

       RESOURCE_NAME                    LIMIT

       -------------------------------- ----------------------------------------

      FAILED_LOGIN_ATTEMPTS            10

     

       1 rows selected.

    

     2. 模拟账户被锁现象

        (为方便模拟lock现象,修改default profile failed_login_attempts=3 )

        a.修改参数failed_login_attempts=3

          SQL> conn / as sysdba;

          Connected.

          SQL>alter profile default limit failed_login_attempts 3;

          Profile altered.

        

        b.重现错误登陆

          正确登陆

         SQL> connecc_view/ecc@devdb1

          Connected.

          SQL> connecc_view/ecc@devdb1

          Connected.

          第一次登陆失败

         SQL> connecc_view/hh@devdb1

          ERROR:

          ORA-01017: invalid username/password; logon denied

          Warning: You are no longer connected to.

ORACLE          第二次登陆失败

         SQL> connecc_view/hh@devdb1

          ERROR:

          ORA-01017: invalid username/password; logon denied

          第三次登陆失败

         SQL> connecc_view/hh@devdb1

          ERROR:

          ORA-01017: invalid username/password; logon denied

          连续3次登陆失败后,账户被锁住了

         SQL> connecc_view/hh@devdb1

          ERROR:

          ORA-28000: the account is locked

        

     3. 解锁

        SQL> conn / as sysdba

         Connected.

         SQL>alter user ecc_view account unlock;

         User altered.

       

     4. 解决方案

           (1) 可以考虑查询应用部署中错误的password或者数据库连接等可能导致错误password的地方,彻底的查询问题所在。

           (2) 修改参数failed_login_attempts=unlimited

              SQL>alter profile default limit failed_login_attempts unlimited;

               Profile altered.              

               SQL> select resource_name, limit from dba_profiles where resource_name = 'FAILED_LOGIN_ATTEMPTS';

              

               RESOURCE_NAME                    LIMIT

               -------------------------------- ----------------------------------------

               FAILED_LOGIN_ATTEMPTS            UNLIMITED

             

     5. 扩展知识点及备注说明

        (1) Q: FAILED_LOGIN_ATTEMPTS=3 3的含义是什么?是累计失败次数还是连续失败次数?

               A: FAILED_LOGIN_ATTEMPTS=3的含义是从第一次登录失败开始计算,连续登陆失败的次数。而不是累计失败的次数。

                试验如下:

               SQL> connecc_view/ecc@devdb1

                Connected.

                第一次登陆失败

               SQL> connecc_view/hh@devdb1

                ERROR:

                ORA-01017: invalid username/password; logon denied

                Warning: You are no longer connected to ORACLE.

                第二次登陆失败

               SQL> connecc_view/hh@devdb1

                ERROR:

                ORA-01017: invalid username/password; logon denied

                正确登陆

               SQL> connecc_view/ecc@devdb1

                Connected.

                此时不是累计,而是重新计算

                第一次登陆失败

               SQL> connecc_view/hh@devdb1

                ERROR:

                ORA-01017: invalid username/password; logon denied

                Warning: You are no longer connected to ORACLE.

                第二次登陆失败

               SQL> connecc_view/hh@devdb1

                ERROR:

                ORA-01017: invalid username/password; logon denied

                第三次登陆失败

               SQL> connecc_view/hh@devdb1

                ERROR:

               ORA-01017: invalid username/password; logon denied

                三次登陆失败后,账户被锁

               SQL> connecc_view/ecc@devdb1

                ERROR:

                ORA-28000: the account is locked

              

        (2) Q: 如何从数据库中查询当前FAILED_LOGIN_ATTEMPTS的值?dba_profiles是限额,并不代表当前值,如果查询当前失败的值怎么查?

               A: select NAME,LCOUNT from user$,user$为view dba_users的基表,通常可以查询一下试图对应的基表,oracle可能会隐藏一些参数

           

             初始值为0:

             SQL> select NAME,LCOUNT from user$ where name = 'ECC_VIEW';

                  NAME                               LCOUNT

                  ------------------------------ ----------

                  ECC_VIEW                               0

                

             错误登陆一次后,值为1

            SQL> connecc_view/h@devdb1

                  ERROR:                    

                  ORA-01017: invalid username/password; logon denied

            SQL> select NAME,LCOUNT from user$ where name = 'ECC_VIEW';  

                  NAME                               LCOUNT

                  ------------------------------ ----------

                  ECC_VIEW                               1

                

             错误登陆2次后,值为2

            SQL> connecc_view/h@devdb1

                  ERROR:                   

                  ORA-01017: invalid username/password; logon denied

             SQL> select NAME,LCOUNT from user$ where name = 'ECC_VIEW';

                  NAME                               LCOUNT

                  ------------------------------ ----------

                  ECC_VIEW                               2

                 

             正确登陆一次后,此值重置为0

            SQL> connecc_view/ecc@devdb1

                  Connected.             

             SQL> select NAME,LCOUNT from user$ where name = 'ECC_VIEW';

                  NAME                               LCOUNT

                  ------------------------------ ----------

                  ECC_VIEW                               0

                         10g测试数据库


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值