標籤:style io 使用 strong 檔案 資料 問題 sp log
oracle 使用者的管理
建立使用者
概述:在 oracle 中要建立一個新的使用者使用 create user 語句,一般是具有 dba(資料庫管理員)的許可權才能使用。
create user 使用者名稱 identified by 密碼; (oracle 有個毛病,密碼必須以字母開頭,如果以字母開頭,它不會建立使用者)
給使用者修改密碼
概述:如果給自己修改密碼可以直接使用
password 使用者名稱
如果給別人修改密碼則需要具有 dba 的許可權,或是擁有 alter user 的系統許可權
SQL> alter user 使用者名稱 identified by 新密碼
刪除使用者
概述:一般以 dba 的身份去刪除某個使用者,如果用其它使用者去刪除使用者則需要具有 drop user 的許可權。
比如 drop user 使用者名稱 【cascade】
在刪除使用者時,注意:
如果要刪除的使用者,已經建立了表,那麼就需要在刪除的時候帶一個參數 cascade;
使用者管理綜合案例
概述:建立的新使用者是沒有任何許可權的,甚至連登陸的資料庫的許可權都沒有,需要為其指定相應的許可權。給一個使用者賦許可權使
用命令 grant,回收許可權使用命令 revoke。
為了給講清楚使用者的管理,這裡我給大家舉一個案例。
SQL> conn xiaoming/m12;
ERROR:
ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied
警告: 您不再串連到 ORACLE。
SQL> show user;
USER 為 ""
SQL> conn system/p;
已串連。
SQL> grant connect to xiaoming;
授權成功。
SQL> conn xiaoming/m12;
已串連。
SQL>
注意:grant connect to xiaoming;在這裡,準確的講,connect 不是許可權,而是角色。
現在說下對象許可權,現在要做這麼件事情:
* 希望 xiaoming 使用者可以去查詢 emp 表
* 希望 xiaoming 使用者可以去查詢 scott 的 emp 表
grant select on emp to xiaoming
* 希望 xiaoming 使用者可以去修改 scott 的 emp 表
grant update on emp to xiaoming
* 希望 xiaoming 使用者可以去修改/刪除,查詢,添加 scott 的 emp 表
grant all on emp to xiaoming
* scott 希望收回 xiaoming 對 emp 表的查詢許可權
revoke select on emp from xiaoming
//對許可權的維護。
* 希望 xiaoming 使用者可以去查詢 scott 的 emp 表/還希望 xiaoming 可以把這個許可權繼續給別人。
--如果是對象許可權,就加入 with grant option
grant select on emp to xiaoming with grant option
我的操作過程:
SQL> conn scott/tiger;
已串連。
SQL> grant select on scott.emp to xiaoming with grant option;
授權成功。
SQL> conn system/p;
已串連。
SQL> create user xiaohong identified by m123;
使用者已建立。
SQL> grant connect to xiaohong;
授權成功。
SQL> conn xiaoming/m12;
已串連。
SQL> grant select on scott.emp to xiaohong;
授權成功。
--如果是系統許可權。
system 給 xiaoming 許可權時:
grant connect to xiaoming with admin option
問題:如果 scott 把 xiaoming 對 emp 表的查詢許可權回收,那麼 xiaohong 會怎樣?
答案:被回收。
下面是我的操作過程:
SQL> conn scott/tiger;
已串連。
SQL> revoke select on emp from xiaoming;
撤銷成功。
SQL> conn xiaohong/m123;
已串連。
SQL> select * from scott.emp;
select * from scott.emp
第 1 行出現錯誤:
ORA-00942: 表或視圖不存在
結果顯示:小紅受到誅連了。。
使用 profile 系統管理使用者口令
概述:profile 是口令限制,資源限制的命令集合,當建立資料庫的,oracle 會自動建立名稱為 default 的 profile。當建立使用者沒
有指定 profile 選項,那麼 oracle 就會將 default 分配給使用者。
1.賬戶鎖定
概述:指定該賬戶(使用者)登陸時最多可以輸入密碼的次數,也可以指定使用者鎖定的時間(天)一般用 dba 的身份去執行該命令。
例子:指定 scott 這個使用者最多隻能嘗試 3 次登陸,鎖定時間為 2 天,讓我們看看怎麼實現。
建立 profile 檔案
SQL> create profile lock_account limit failed_login_attempts 3 password_lock_time 2;
SQL> alter user scott profile lock_account;
2.給賬戶(使用者)解鎖
SQL> alter user tea account unlock;
3.終止口令
為了讓使用者定期修改密碼可以使用終止口令的指令來完成,同樣這個命令也需要 dba 的身份來操作。
例子:給前面建立的使用者 tea 建立一個 profile 檔案,要求該使用者每隔 10 天要修改自己的登陸密碼,寬限期為 2 天。看看怎麼做。
SQL> create profile myprofile limit password_life_time 10 password_grace_time 2;
SQL> alter user tea profile myprofile;
口令曆史
概述:如果希望使用者在修改密碼時,不能使用以前使用過的密碼,可使用口令曆史,這樣 oracle 就會將口令修改的資訊存放到
資料字典中,這樣當使用者修改密碼時,oracle 就會對新舊密碼進行比較,當發現新舊密碼一樣時,就提示使用者重新輸入密碼。
例子:
1)建立 profile
SQL>create profile password_history limit password_life_time 10 password_grace_time 2 password_reuse_time 10
password_reuse_time //指定口令可重用時間即 10 天后就可以重用
2)分配給某個使用者
刪除 profile
概述:當不需要某個 profile 檔案時,可以刪除該檔案。
SQL> drop profile password_history 【casade】
注意:檔案刪除後,用這個檔案去約束的那些使用者通通也都被釋放了。。
加了 casade,就會把級聯的相關東西也給刪除掉
oracle 使用者的管理