轉載 http://blog.itpub.net/26110315/viewspace-716039/
更改用戶的密碼:
除了使用alter user命令修改用戶的密碼以后,可以在sql*plus中使用password關鍵字修改密碼。
SQL> conn hr/hr
已連接。
SQL> password
更改 HR 的口令
舊口令:
新口令:
重新鍵入新口令:
口令已更改
SQL> conn system as sysdba
輸入口令:
已連接。
SQL> password scott //DBA可以使用password+username修改其他用戶的密碼。
更改 scott 的口令
新口令:
重新鍵入新口令:
口令已更改
在pl/sql等其他工具中該命令是無法使用的。
給用戶授予create session特權,以創建會話:
SQL> conn system as sysdba
輸入口令:
已連接。
SQL> grant create session to oracleusr;
授權成功。
SQL> conn oracleusr
輸入口令:
已連接。
這樣用戶就可以創建會話登錄到oracle數據庫中了.
鎖定用戶賬號,當用戶登錄的時候會報ORA-28000的錯誤:
SQL> alter user oracleusr account lock;
用戶已更改。
SQL> conn oracleusr
輸入口令:
ERROR:
ORA-28000: 帳戶已被鎖定
設置用戶密碼的狀態:
密碼過期以后用戶登錄的時候會提示修改密碼,並報ORA-28001錯誤。
SQL> alter user oracleusr password expire;
用戶已更改。
SQL> conn oracleusr
輸入口令:
ERROR:
ORA-28001: 口令已經失效
更改 oracleusr 的口令
新口令:
重新鍵入新口令:
口令已更改
已連接。
刪除用戶賬戶:
SQL> create user testuser identified by oracle11g;
用戶已創建。
SQL> drop user testuser;
用戶已刪除。
請謹慎刪除用戶,刪除用戶的同時用戶對應的schema中的對象也將被刪除.
用戶信息的查詢:
很多時候只靠查詢dba_users數據字典,用戶的相關信息還可以查詢:
dba_ts_quotas查詢用戶所在永久表空的配額等信息。
其實數據庫中的很多用戶都不需要磁盤配額,因為他們只需要其他schema中對象的訪問與操作特權。
SQL> select tablespace_name,bytes,max_bytes
2 from dba_ts_quotas
3 where username='ORACLEUSR';
TABLESPACE_NAME BYTES MAX_BYTES
------------------------------ ---------- ----------
USERS 0 10485760
database_properties查詢有關默認臨時表空間,永久表空間的設置情況。
max_bytes如果值是-1表示在對應的表空間中的磁盤配額是unlimited。
關於profile:
profile用於設置一系列的數據庫資源使用限制。把profile分配給用戶,用戶的資源使用被設置在profile的限制之內。使用create profile 創建profile.使用create user或alter user給用戶分配profile.
profile中的限制又分為兩種:
resource_parameters:
sessions_per_user:指定用戶並發的會話數。
cpu_per_session:以百分之一秒為單位,指定用戶的CPU占用時間。
cpu_per_call:以百分之一秒,指定一次調用的的CPU占用時間。
connect_time:以分為單位,指定會話的持續時間。
idle_time:以分為單位,指定會話的空閑時間。
logical_reads_per_session:指定允許的logical reads 塊數量。
logical_reads_per_call:指定一次調用允許的logical reads塊數量。
private_sga:一個會話在SGA共享池中分配的私有會話空間的大小。
該參數只有在共享服務器模式下才有效。
composite_limit:以服務單元指定一個會話總的資源開銷。oracle會根據cpu_per_session,
connect_time,logical_reads_per_session,private_sga的加權值來計算service units。
SQL> create profile new_profile1 limit //profile名稱new_profile1
2 sessions_per_user 5 //用戶的同時並發會話數5
3 cpu_per_session unlimited //會話的CPU占用時間無限制
4 cpu_per_call 6000 //一次調用不能占用CPU的時間不能超過60秒
5 connect_time 60 //單個會話持續的時間不能超過60分鍾
6 logical_reads_per_session 1500 //單個會話所能允許的邏輯讀塊數:1500
7 logical_reads_per_call default //一次調用的所能允許的邏輯讀塊數使用默認值
8 private_sga 10k //單個會話可以占用的sga的內存空間:10kb
9 composite_limit 5000000; //復合資源限制的數量500萬服務單元。
配置文件已創建
此處沒有指定idle_time,password_parameters的參數,所有點那個把new_profile1分配給用戶的時候,這些限制將使用default profile中的默認值。
給用戶分配profile:
SQL> alter user oracleusr profile new_profile1;
用戶已更改。
如果用戶在創建的時候不指定profile,oracle會自動把default profile分配給用戶.
password_parameters:
failed_login_attempts:用戶賬戶被鎖定前,用戶登錄的嘗試次數,默認值是10次。
password_life_time:指定密碼過期的時間,默認值是180天。
password_reuse_time:當前密碼可以重用以前必須經過的時間間隔。
password_reuse_max:當前密碼可以被重用前需要修改的次數。
以上兩個參數需要一同使用。
password_lock_time:當超過failed_login_attempts指定的值時,賬戶被鎖定的天數。默認是一天。
password_grace_time:在password_life_time到期以后寬限用戶使用原密碼登錄的天數
如果,在password_grace_time指定的天數內,舊密碼仍有效,但是會提高用戶更改密碼。默認是7天。
password_verify_function:指定密碼復雜度驗證的PL/SQL函數,或第三方運用程序。不使用
密碼驗證函數,password_verify_function設置為null。
SQL> create profile new_profile2 limit
2 failed_login_attempts 3
3 password_life_time 90
4 password_reuse_time 180
5 password_reuse_max 3
6 password_verify_function null
7 password_lock_time 1
8 password_grace_time 5;
配置文件已創建
SQL> alter user oracleusr profile new_profile2;
用戶已更改。
注意此時前面分配給用戶的new_profile1就被new_profile2取代了。
在new_profile中未指定的resource_parameters會自動使用default profile中的默認值。
所有應該把所有的資源限制寫在同一個profile中。
補充上節內容:
上節中提到了oracle的預置賬戶:sys,system
sys與system都具有很高的權限,都被授予了dba角色。但是sys的權限要高於system,sys用戶可以執行system用戶無法執行的:數據庫升級、數據庫備份與恢復。system用戶主要用於執行數據庫的日常管理工作。
注:數據庫中數據庫字典包含的所有的基表與視圖都存儲在sys schema中。這些基表與視圖對數據庫的運行十分的關鍵,為了保證數據字典的完整性,在sys schema中的基表只能被數據庫操作。system schema額外的用於數據庫管理的表與視圖。
