Oracle grant用戶授權(quán) |
發(fā)布時間: 2012/8/24 17:27:57 |
獲得對象授權(quán)的用戶可以訪問數(shù)據(jù)庫對象及其內(nèi)容。提示當(dāng)用戶獲得處理其他用戶表的權(quán)限后,在他能夠在SQL語句中引用其他用戶的表之前,必須有這些表的公用或私用同義詞, Oracle可通過它們識別出這些表。 假設(shè)Jrstocks擁有稱為sample_b的表,并允許所有數(shù)據(jù)庫用戶訪問sample_b。另一個用戶coreyan用一條SQL語句查詢表sample_b,得到下列錯誤信息: - * ERROR at line :1 ORA-00942:table or view does not exist 不論授予何種權(quán)限,每條授權(quán)(grant)語句總是由三部分組成: 1) 接受者部分是準(zhǔn)備獲得權(quán)限的一個或多個用戶的列表。 2)關(guān)鍵字權(quán)限部分由grant后跟一種或多種權(quán)限組成。如果在同一條grant語句中有多個權(quán)限,權(quán)限之間用逗號分隔。 3) 表名部分由關(guān)鍵字o n起頭并列出準(zhǔn)備在其上授權(quán)的表。 看下面的詳細(xì)介紹,主要是介紹如何把添加、刪除、修改、查詢四種權(quán)限授予用戶,如下: 一、insert insert權(quán)限允許在其他用戶的表中建立行。語句grant insert on sample_a to public;允許所有用戶在sample_a中建立新的行。Oracle允許在單條grant語句中授多個權(quán)限,SQL語句grant insert,select on sample_a to public;等價于兩個語句:grant select on sample_a to public;語句和grant insert on sample_a to ublic;語句。 二、update update權(quán)限允許其他用戶修改非自己表中的數(shù)據(jù)。語句grant update on sample_a teplownd;允許用戶teplownd修改表sample_a中的信息。 三、select select權(quán)限允許用戶查看其他用戶表中的內(nèi)容。語句grant select on sample_3 to public;將允許所有用戶瀏覽表sample_3中的內(nèi)容,而語句grant select on sample_3 to ops$rosenberge,ops$abbeyms;則只允許兩個用戶查看表sample_3中的內(nèi)容。注意,當(dāng)多個用戶接受授權(quán)時,用戶名之間要用逗號分隔。 提示以public為授權(quán)對象時,所有數(shù)據(jù)庫用戶都獲得指定的權(quán)限。如果用戶的數(shù)據(jù)庫有15000個用戶,則單獨授權(quán)就需要15000次(每個用戶一次),而授權(quán)給public,一次即可。 四、delete 刪除權(quán)限允許其他用戶刪除指定表的信息行。此權(quán)限非同小可,因此我們建議小心使用。下面是一個實際例子:如果一個用戶連接到產(chǎn)品數(shù)據(jù)庫,而他還以為他連接的是測試數(shù)據(jù)庫。他發(fā)布了一條命令delete from people_master;并且Oracle做出了反應(yīng)12003 rows delet.ed在退出SQL * Plus后,下一個程序訪問people_master查看Rick Bower的記錄,會被告知記錄不存在。 命令grant delete,update,select on sample_a to public;對所有數(shù)據(jù)庫用戶給出指明的權(quán)限,而命令grant select,update,insert,delete on sample_a to teplownd,greerw;只允許用戶teplownd和greerw對表sample_a做命令中所列出的動作。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |