linux怎么锁定test用户,用户被锁定不影响JOB的运行
今天在維護用戶的帳號狀態的時候碰到這個問題。和同事討論這個問題的時候,我認為即使用戶的帳號被鎖定,JOB也可以運行。
用一個建立例子來說明這個問題:
SQL> conn / as sysdba
Connected.
SQL> create user u_test identified by u_test default tablespace ndmain;
User created.
SQL> grant connect, resource to u_test;
Grant succeeded.
SQL> conn u_test/u_test
Connected.
SQL> create table t (time date);
Table created.
SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
Session altered.
SQL> declare
2? v_job number;
3? begin
4? dbms_job.submit(v_job, 'begin insert into t values (sysdate); end;', to_date('2009-8-26 11:0:0'));
5? commit;
6? end;
7? /
PL/SQL procedure successfully completed.
SQL> col what format a45
SQL> select job, what, next_date from user_jobs;
JOB WHAT????????????????????????????????????????? NEXT_DATE
---------- --------------------------------------------- -------------------
50 begin insert into t values (sysdate); end;??? 2009-08-26 11:00:00
SQL> select sysdate from dual;
SYSDATE
-------------------
2009-08-26 10:44:22
建立一個U_TEST用戶,授權必要的權限,然后建立一張測試表,并設定一個JOB,在11點的時候向測試表中插入系統時間。
現在的時間是10點44分,下面鎖住U_TEST用戶:
SQL> conn / as sysdba
Connected.
SQL> alter user u_test account lock;
User altered.
SQL> select username, account_status
2? from dba_users
3? where username = 'U_TEST';
USERNAME?????????????????????? ACCOUNT_STATUS
------------------------------ --------------------------------
U_TEST???????????????????????? LOCKED
SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';
Session altered.
SQL> select sysdate from dual;
SYSDATE
-------------------
2009-08-26 10:45:59
SQL> select * from u_test.t;
no rows selected
鎖定用戶后,目前的時間是10點46分左右,U_TEST用戶下的T表還沒有記錄,等待一段時間后:
SQL> select sysdate from dual;
SYSDATE
-------------------
2009-08-26 10:59:18
SQL> select sysdate from dual;
SYSDATE
-------------------
2009-08-26 11:00:50
SQL> select * from u_test.t;
TIME
-------------------
2009-08-26 11:00:01
SQL> select username, account_status, lock_date
2? from dba_users
3? where username = 'U_TEST';
USERNAME?????????????????????? ACCOUNT_STATUS?????????????????? LOCK_DATE
------------------------------ -------------------------------- -------------------
U_TEST???????????????????????? LOCKED?????????????????????????? 2009-08-26 10:44:52
可以看到,在11點的時候JOB運行,向測試表中插入了JOB運行時的系統時間。而檢查U_TEST用戶可以發現,從10點44分起,這個用戶一直處于鎖定狀態。
這說明JOB的運行和用戶是否被鎖定無關,因為JOB的運行并不需要登陸操作。以前碰到過的一個問題從另一方面說明了這一點:JOB自動執行出錯,但手工執行正常——淺談job和database link的一個特點:
總結
以上是生活随笔為你收集整理的linux怎么锁定test用户,用户被锁定不影响JOB的运行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux+后台运行+nohup,Lin
- 下一篇: linux blind函数,Linux网