创建了个用户叫:a-admin
现在连接数据库,提示此用户被锁定。
于是以system登录,在sqlplus中打alter user a-admin account unlock;结果"-"被认成了option。
后来我加了引号alter user 'a-admin' account unlock;这时候又报“此用户不存在”了。

解决方案 »

  1.   

    -- 以 sys 用户登录,然后查一下你的数据字典 dba_users ,看 a-admin 用户是否存在及该用户是否锁定(注意用户名的大小写哦):sys@TDODS> select username, account_status from dba_users;USERNAME        ACCOUNT_STATUS
    ------------------------------ --------------------------------
    TDODSWEB        OPEN
    TDTEST        OPEN
    TD_SELECT        OPEN
    LYM        OPEN
    HR        OPEN
    OUTLN        OPEN
    TDWLLOG         OPEN
    SCOTT        OPEN
    LPY        OPEN
    SPATIAL_WFS_ADMIN_USR        EXPIRED & LOCKED
    SPATIAL_CSW_ADMIN_USR        EXPIRED & LOCKED
    APEX_PUBLIC_USER        EXPIRED & LOCKED
    OE        EXPIRED & LOCKED
    DIP        EXPIRED & LOCKED
    SH        EXPIRED & LOCKED
    IX        EXPIRED & LOCKED
    MDDATA        EXPIRED & LOCKED
    PM        EXPIRED & LOCKED
    BI        EXPIRED & LOCKED
    XS$NULL         EXPIRED & LOCKED
    ORACLE_OCM        EXPIRED & LOCKED
    SYSMAN        OPEN
    OLAPSYS         EXPIRED & LOCKED
    SI_INFORMTN_SCHEMA        EXPIRED & LOCKED
    OWBSYS        EXPIRED & LOCKED
    ORDPLUGINS        EXPIRED & LOCKED
    XDB        EXPIRED & LOCKED
    ANONYMOUS        EXPIRED & LOCKED
    CTXSYS        EXPIRED & LOCKED
    ORDDATA         EXPIRED & LOCKED
    OWBSYS_AUDIT        EXPIRED & LOCKED
    APEX_030200        EXPIRED & LOCKED
    APPQOSSYS        EXPIRED & LOCKED
    WMSYS        EXPIRED & LOCKED
    DBSNMP        EXPIRED & LOCKED
    EXFSYS        EXPIRED & LOCKED
    ORDSYS        EXPIRED & LOCKED
    MDSYS        EXPIRED & LOCKED
    FLOWS_FILES        EXPIRED & LOCKED
    SYSTEM        OPEN
    SYS        OPEN
    MGMT_VIEW        OPEN
    TDODS        OPEN43 rows selected.
      

  2.   

    -- 例如:我要查看或修改SCOTT用户的锁定状态:
    sys@TDODS> select username, account_status from dba_users where username='SCOTT';USERNAME        ACCOUNT_STATUS
    ------------------------------ --------------------------------
    SCOTT        OPENElapsed: 00:00:00.02
    sys@TDODS> ALTER USER SCOTT ACCOUNT LOCK;User altered.Elapsed: 00:00:00.62
    sys@TDODS> select username, account_status from dba_users where username='SCOTT';USERNAME        ACCOUNT_STATUS
    ------------------------------ --------------------------------
    SCOTT        LOCKEDElapsed: 00:00:00.00
    sys@TDODS> ALTER USER SCOTT ACCOUNT UNLOCK;User altered.Elapsed: 00:00:00.00
    sys@TDODS> select username, account_status from dba_users where username='SCOTT';USERNAME        ACCOUNT_STATUS
    ------------------------------ --------------------------------
    SCOTT        OPENElapsed: 00:00:00.01
      

  3.   

    a-admin这个用户是存在的,状态是locked(timed).怎么办?如何解锁啊?在线等。
      

  4.   


    二楼的大哥,这些我都看了,都有,现在的问题就是,在用alert的时候,好像无法识别a-admin这个用户名中减号。有没有办法?比如将减号转义。或者\-代表一个减号之类的方法?
      

  5.   

    -- 因为 a-admin 用户名中间有“-”(减字符号),所以用户名应该用双引号括起来,类似于:
    ALTER USER "a-admin" account unlock;
      

  6.   

    -- 用户名用双引号括起来,同时注意 a-admin 用户名的大小写哦:sys@TDODS> create user "a-admin" identified by bee;User created.Elapsed: 00:00:00.13
    sys@TDODS> alter user a-admin account unlock;
    alter user a-admin account unlock
                *
    ERROR at line 1:
    ORA-00922: missing or invalid option
    Elapsed: 00:00:00.00
    sys@TDODS> select username, account_status from dba_users where username='a-admin';USERNAME        ACCOUNT_STATUS
    ------------------------------ --------------------------------
    a-admin         OPENElapsed: 00:00:00.00
    sys@TDODS> alter user "a-admin" account unlock;User altered.Elapsed: 00:00:00.01
    sys@TDODS> select username, account_status from dba_users where username='a-admin';USERNAME        ACCOUNT_STATUS
    ------------------------------ --------------------------------
    a-admin         OPENElapsed: 00:00:00.00
      

  7.   


    这个方法也试过了,也不行,提示没有'a-admin'用户,似乎把“转化成了',同时认为"'a-admin'"是一个完整的用户名,所以报不存在。
      

  8.   

    这个方法也试过了,也不行,提示没有'a-admin'用户,似乎把“转化成了',同时认为"'a-admin'"是一个完整的用户名,所以报不存在。你双引号里为什么还要加一个单引号呢?今年是龙年,不是猪年,我不想看到太多的“猪”!