此文章出自:<a >Ruthless</a>
一曹抬、創(chuàng)建用戶概述:在oracle中要創(chuàng)建一個新的用戶使用create user語句溉瓶,一般是具有dba(數(shù)據(jù)庫管理員)的權(quán)限才能使用。create user 用戶名 identified by 密碼; 注意:oracle有個毛病谤民,密碼必須以字母開頭堰酿,如果以數(shù)字開頭,它不會創(chuàng)建用戶eg张足、create user xiaoming identified by oracle;
二触创、給用戶修改密碼概述:如果給自己修改密碼可以直接使用SQL> password 用戶名或passw如果給別人修改密碼則需要具有dba的權(quán)限,或是擁有alter user的系統(tǒng)權(quán)限SQL> alter user 用戶名 identified by 新密碼 三为牍、刪除用戶概述:一般以dba的身份去刪除某個用戶哼绑,如果用其它用戶去刪除用戶則需要具有drop user的權(quán)限岩馍。比如drop user 用戶名 【cascade】注意:在刪除用戶時,如果要刪除的用戶抖韩,已經(jīng)創(chuàng)建了表蛀恩,那么就需要在刪除的時候帶一個參數(shù)cascade,即把該用戶及表一同刪除;
四茂浮、權(quán)限權(quán)限分為系統(tǒng)權(quán)限和對象權(quán)限杰赛。何為系統(tǒng)權(quán)限扶供?用戶對數(shù)據(jù)庫的相關(guān)權(quán)限缎玫,connect彤悔、resource替裆、dba等系統(tǒng)權(quán)限恍箭,如建庫衡未、建表晚顷、建索引庞呕、建存儲過程新翎、登陸數(shù)據(jù)庫、修改密碼等住练。何為對象權(quán)限地啰?用戶對其他用戶的數(shù)據(jù)對象操作的權(quán)限,insert讲逛、delete亏吝、update、select盏混、all等對象權(quán)限蔚鸥,數(shù)據(jù)對象有很多,比如表许赃,索引止喷,視圖,觸發(fā)器混聊、存儲過程弹谁、包等。執(zhí)行SELECT * FROM Dba_Object_Size;語句可得到oracle數(shù)據(jù)庫對象句喜。
五预愤、角色角色分為預(yù)定義角色和自定義角色。
六咳胃、用戶管理的綜合案例概述:創(chuàng)建的新用戶是沒有任何權(quán)限的植康,甚至連登陸的數(shù)據(jù)庫的權(quán)限都沒有,需要為其指定相應(yīng)的權(quán)限展懈。給一個用戶賦權(quán)限使用命令grant向图,回收權(quán)限使用命令revoke泳秀。為了講清楚用戶的管理,這里我給大家舉一個案例榄攀。SQL> conn xiaoming/oracleERROR:ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied警告: 您不再連接到 ORACLE嗜傅。SQL> show userUSER 為 ""SQL> conn system/oracle已連接。SQL> grant connect to xiaoming;授權(quán)成功檩赢。SQL> conn xiaoming/oracle已連接吕嘀。SQL>注意:grant connect to xiaoming;在這里,準確的講贞瞒,connect不是權(quán)限偶房,而是角色。 現(xiàn)在說下對象權(quán)限军浆,現(xiàn)在要做這么件事情:* 希望xiaoming用戶可以去查詢emp表* 希望xiaoming用戶可以去查詢scott的emp表grant select on scott.emp to xiaoming* 希望xiaoming用戶可以去修改scott的emp表grant update on scott.emp to xiaoming* 希望xiaoming 用戶可以去修改/刪除棕洋,查詢,添加scott的emp表grant all on scott.emp to xiaoming* scott希望收回xiaoming對emp表的查詢權(quán)限r(nóng)evoke select on scott.emp from xiaoming
七乒融、權(quán)限的傳遞//對權(quán)限的維護掰盘。* 希望xiaoming用戶可以去查詢scott的emp表/還希望xiaoming可以把這個權(quán)限傳遞給別人。--如果是對象權(quán)限赞季,就加入with grant optiongrant select on emp to xiaoming with grant option我的操作過程:SQL> conn scott/oracle;已連接愧捕。SQL> grant select on scott.emp to xiaoming with grant option;授權(quán)成功。SQL> conn system/oracle;已連接申钩。SQL> create user xiaohong identified by oracle;用戶已創(chuàng)建次绘。SQL> grant connect to xiaohong;授權(quán)成功。SQL> conn xiaoming/oracle;已連接撒遣。SQL> grant select on scott.emp to xiaohong;授權(quán)成功邮偎。 --如果是系統(tǒng)權(quán)限。system給xiaoming權(quán)限時:grant connect to xiaoming with admin option問題:如果scott把xiaoming對emp表的查詢權(quán)限回收义黎,那么xiaohong會怎樣禾进?答案:被回收。下面是我的操作過程:SQL> conn scott/oracle;已連接轩缤。SQL> revoke select on emp from xiaoming;撤銷成功命迈。SQL> conn xiaohong/oracle;已連接。SQL> select * from scott.emp;select * from scott.emp*第 1 行出現(xiàn)錯誤:ORA-00942: 表或視圖不存在結(jié)果顯示:小紅受到誅連了火的。壶愤。
八、with admin option與with grant option區(qū)別1馏鹤、with admin option用于系統(tǒng)權(quán)限授權(quán)征椒,with grant option用于對象授權(quán)。
2湃累、給一個用戶授予系統(tǒng)權(quán)限帶上with admin option時勃救,此用戶可把此系統(tǒng)權(quán)限授予其他用戶或角色碍讨,但收回這個用戶的系統(tǒng)權(quán)限時,這個用戶已經(jīng)授予其他用戶或角色的此系統(tǒng)權(quán)限不會因傳播無效蒙秒,如授予A系統(tǒng)權(quán)限create session with admin option,然后A又把create session權(quán)限授予B,但管理員收回A的create session權(quán)限時勃黍,B依然擁有create session的權(quán)限,但管理員可以顯式收回B create session的權(quán)限晕讲,即直接revoke create session from B.
而with grant option用于對象授權(quán)時覆获,被授予的用戶也可把此對象權(quán)限授予其他用戶或角色,不同的是但管理員收回用with grant option授權(quán)的用戶對象權(quán)限時瓢省,權(quán)限會因傳播而失效弄息,如grant select on table with grant option to A,A用戶把此權(quán)限授予B,但管理員收回A的權(quán)限時勤婚,B的權(quán)限也會失效摹量,但管理員不可以直接收回B的SELECT ON TABLE 權(quán)限。