《oracle管理6》

來源:互聯網
上載者:User

標籤:select   一致性   oracle   ble   外鍵   trail   rac   瀏覽器   工作   

audit

開啟切換參數:

SQL> show parameter audit_trail

設定審計選項:

每次設定新的審計選項,測試使用者需要重新串連

sys準備工作:

SQL> drop user user01 cascade;

SQL> create user user01 identified by password;

SQL> grant create session, create table, create any table to user01;

審計系統許可權:

SQL> AUDIT CREATE ANY TABLE, CREATE TABLE BY USER01 BY ACCESS;   audit                                                                                   

user01測試:

SQL> create table t1(x int);

SQL> create table t1(x int); 失敗

SQL> create table hr.t1(x int);

SQL> create table hr.t1(x int); 失敗

sys查看審計結果:

SQL> desc aud$

SQL> desc dba_audit_trail

瀏覽器中查看

sys添加審計條件:

SQL> AUDIT SELECT ANY TABLE BY user01 BY ACCESS;

SQL> grant select any table to user01;

user01測試:

SQL> select * from t1;

SQL> select * from hr.t1;

sys查看審計結果:

瀏覽器中或者查看dba_audit_trail表

刪除審計選項:

SQL> NOAUDIT CREATE ANY TABLE BY USER01;

SQL> NOAUDIT CREATE TABLE BY USER01;

SQL> NOAUDIT SELECT ANY TABLE BY user01;

 

審計對象:

sys設定審計選項:

SQL> AUDIT SELECT ON hr.employees BY ACCESS;

SQL> drop user user01 cascade;

SQL> create user user01 identified by password;

SQL> grant create session to user01;

sys授權,每執行一個語句,user01就測試一次:

SQL> grant select any table to user01;

SQL> revoke select any table from user01;

SQL> grant select on hr.employees to user01;

user01測試(執行4次):

SQL> select count(*) from hr.employees;

預設不記錄sys的行為:

SQL> select count(*) from hr.employees;

刪除審計選項:

SQL> NOAUDIT SELECT ON hr.employees;

 

審計語句:

sys設定審計選項:

SQL> AUDIT TABLE BY user01 BY ACCESS;

user01測試:

SQL> create table t1(x int); 失敗

SQL> create table t1(x int);

SQL> create table t1(y int); 失敗

SQL> drop table t1;

sys查看結果:

瀏覽器中,或DBA_AUDIT_OBJECT表中

刪除審計選項:

SQL> NOAUDIT TABLE BY USER01

 

審計sys的操作:

SQL> show parameter audit

修改兩個參數

並發管理

讀寫衝突通過讀一致性解決:

sys準備工作:

SQL> create user user01 identified by password;

SQL> grant dba to user01;

以下都用user01:

SQL> conn user01/password

Connected.

SQL> create table t1(x int);

SQL> insert into t1 values (1);

SQL> commit;

session1:

SQL> update t1 set x=11 where x=1;

SQL> select * from t1;

session 2:

SQL> select * from t1;

session 1:s

SQL> commit;

session 2:

SQL> select * from t1;

測試serializable:

session1:

SQL> alter session set isolation_level=serializable;

重複上面的步驟

 

寫與寫的衝突通過鎖機制解決:

session 1:

SQL> update t1 set x=11 where x=1;

瀏覽器中查看鎖資訊

session 2:

SQL> update t1 set x=111 where x=1; 被阻塞

瀏覽器中查看鎖資訊   

session 1:

SQL> rollback;

瀏覽器中查看鎖資訊

 

死結:

session1:

SQL> select * from t1;

 

         X

----------

         1

         2

SQL> update t1 set x=11 where x=1;

session2:

SQL> update t1 set x=22 where x=2;

session1:

SQL> update t1 set x=222 where x=2; 阻塞

session2:

SQL> update t1 set x=111 where x=1; 死結

ERROR at line 1:

ORA-00060: deadlock detected while waiting for resource

$ vi /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

 

鎖和外鍵

select … for update

《oracle管理6》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.