2023年12月24日 13:18:38
profile檔案的介紹:
1、設定乙個使用者只能有乙個會話
sql> create profile one_session limit sessions_per_user 1;
sql> alter user lttfm profile one_session;
sql> alter system set resource_limit=true; --限制生效的前提(resource_limit=true)
做了以上設定後,若lttfm使用者已經登陸,再次用lttfm登陸會提示錯誤(ora-02391:exceeded simultaneous sessions_per_user limit)則不能再次登陸即lttfm使用者不能開啟兩個會話。
2、檢視資訊
select * from dba_users;--檢視使用者的引數
select * from dba_profiles;--顯示所有profile檔案及其限制
select * from user_password_limits;--描述指定給使用者的profile中的口令限制情況
select * from user_resource_limits;--描述指定給使用者的profile中的資源限制情況
select *from resource_cost;--列舉每個資源的價值 3
、profile引數修改
--修改profile引數
alter profile one_session limit sessions_per_user 10;
--刪除乙個新的尚未分配給使用者的profile
drop profile one_session
--刪除已建立的profile,如果已經指定了使用者則要加上cascade關鍵字
drop profile one_session cascade
注:default profile不可以被刪除
4、profile的引數含義
composite_limit:乙個會話的資源成本限制,cpu_per_session, connect_time, logical_reads_per_session, and private_sga
sessions_per_user:乙個使用者允許同時(併發)會話的總數,超過後系統禁止該使用者的後續會話
cpu_per_session:定義了乙個session占用的cpu的時間(1/100 秒),當達到這個限制使用者不能在此會話中執行任何操作,此時必須先斷開連線,再連線才行
cpu_per_call:限制每次呼叫sql語句期間(parse、execute、fetch)可用的cpu時間總量,單位是百分之一秒。達到限制時語句以報錯結束。不同於 cpu_per_session的是,沒達到cpu_per_session限制,還可以進行新的查詢
logical_reads_per_session:乙個會話允許讀寫的邏輯塊的數量限制
logical_reads_per_call:一次呼叫的sql期間,允許讀資料庫塊數限制
idle_time:乙個連線會話的最長連線時間;當使用者空閒時間超過idle_time指定的時間,oracle將回滾當前事務,並且結束他的會話
connect_time:乙個連線會話的最長連線時間(分鐘);當使用者會話時間超過connect_time指定的時間,oracle將回滾當前事務,並且結束他的會話
private_sga:乙個會話允許分配的最大sga大小,使用k/m定義
failed_login_attempts:當連續登陸失敗次數達到該引數指定值時,使用者被加鎖;
password_life_time:口令的有效期(天),預設為unlimited
password_reuse_time:口令被修改後原有口令隔多少天被重新使用,預設為unlimited
password_reuse_max:口令被修改後原有口令被修改多少次才允許被重新使用
password_verify_function:口令效驗函式
password_lock_time:帳戶因failed_login_attempts鎖定時,加鎖天數
password_grace_time:口令修改的寬限期(天)
密碼檔案
1、密碼檔案的使用
sqlplus "/ as sysdba" --可以直接登陸本機資料庫,但是登陸遠端資料庫時失敗(error:ora-01031: insufficient privileges)
如果登陸遠端資料庫就要寫上使用者名稱密碼,而且該使用者名稱具有sysdba許可權
建立密碼檔案
orapwd file=《密碼檔名》 password =《登陸密碼》 entries=《允許使用該密碼檔案的最大使用者數》
密碼檔案位置
d:\oracle\product\10.2.0\db_1\database下的pwdsid.ora,其中sid代表相應的oracle資料庫系統識別符號
2、密碼檔案的remote_login_passwordfile引數
有了密碼檔案之後,需要設定初始化引數remote_login_passwordfile來控制密碼檔案的使用狀態。
sql> show parameter password --檢視密碼檔案的狀態
none:指示oracle系統不使用密碼檔案,特權使用者的登入通過作業系統進行身份驗證;
exclusive:指示只有乙個資料庫例項可以使用此密碼檔案。只有在此設定下的密碼檔案可以包含有除internal/sys以外的使用者資訊,
即允許將系統許可權sysoper/sysdba授予除internal/sys以外的其他使用者。
shared:指示可有多個資料庫例項可以使用此密碼檔案。在此設定下只有internal/sys帳號能被密碼檔案識別,即使檔案中存有其他使用者的資訊,
也不允許他們以sysoper/sysdba的許可權登入。此設定為預設值。
--修改'remote_login_passwordfile'引數值
alter system set remote_login_passwordfile=exclusive scope=spfile
--授權給其它使用者
建立相應使用者帳號,對其授權(包括sysoper和sysdba):
grant sysdba to user_name;
游標共享的使用
預設情況下,cursor_sharing的引數為exact
select * from i_manhole_info where g3e_id=50041841;
--開啟游標共享
alter session set cursor_sharing=force;
--再查詢
select * from i_manhole_info where g3e_id=50041841;
--通過sql_text表檢視前後兩次查詢的結果
select * from v$sql where sql_text like 'select * from i_manhole_info%';
查詢結果:
select * from i_manhole_info where g3e_id=50041841;
select * from i_manhole_info where g3e_fid=:"sys_b_0" --游標共享開啟後將直接變數刪除,採用繫結變數
--停止游標共享
alter session set cursor_sharing=exact;
備註:一般情況下,我們不採用通過開啟游標共享來調整效能
20151116 密碼檔案
檢視oracle資料庫版本號 select from v version 檢視當前使用者 select user from dual show user sysdba不是許可權,當使用者以sysdba身份登入資料庫時,登入使用者都會變成sys.sysdba身份登入可以開啟關閉資料庫,建立spfile...
oracle密碼檔案
很多時候需要對oracle密碼檔案進行重建,oracle對密碼檔案有著較為嚴格的要求,比如檔名,檔名大小寫等等,有一次因oracle sid的大小寫折騰了很久,現記錄如下 linux平台 orapwd file oracle home dbs orapw oracle sid password en...
oracle密碼檔案
很多時候需要對oracle密碼檔案進行重建,oracle對密碼檔案有著較為嚴格的要求,比如檔名,檔名大小寫等等,有一次因oracle sid的大小寫折騰了很久,現記錄如下 linux平台 orapwd file oracle home dbs orapw oracle sid password en...