獲得對象授權的使用者可以訪問資料庫物件及其內容。提示當使用者獲得處理其他使用者表的許可權後,在他能夠在SQL語句中引用其他使用者的表之前,必須有這些表的公用或私用同義字, Oracle可通過它們識別出這些表。
假設Jrstocks擁有稱為sample_b的表,並允許所有資料庫使用者訪問sample_b。另一個使用者coreyan用一條SQL語句查詢表sample_b,得到下列錯誤資訊:
insert許可權允許在其他使用者的表中建立行。語句grant insert on sample_a to public;允許所有使用者在sample_a中建立新的行。Oracle允許在單條grant語句中授多個許可權,SQL語句grant insert,select on sample_a to public;等價於兩個語句:grant select on sample_a to public;語句和grant insert on sample_a to ublic;語句。
update許可權允許其他使用者修改非自己表中的資料。語句grant update on sample_a teplownd;允許使用者teplownd修改表sample_a中的資訊。
select許可權允許使用者查看其他使用者表中的內容。語句grant select on sample_3 to public;將允許所有使用者瀏覽表sample_3中的內容,而語句grant select on sample_3 to ops$rosenberge,ops$abbeyms;則只允許兩個使用者查看錶sample_3中的內容。注意,當多個使用者接受授權時,使用者名稱之間要用逗號分隔。
刪除許可權允許其他使用者刪除指定表的資訊行。此許可權非同小可,因此我們建議小心使用。下面是一個實際例子:如果一個使用者串連到產品資料庫,而他還以為他串連的是測試資料庫。他發布了一條命令delete from people_master;並且Oracle做出了反應12003 rows delet.ed在退出SQL * Plus後,下一個程式訪問people_master查看Rick Bower的記錄,會被告知記錄不存在。
select * from sapmle_b; * ERROR at line :1 ORA-00942:table or view does not exist |
不論授予何種許可權,每條授權(grant)語句總是由三部分組成:
1) 接受者部分是準備獲得許可權的一個或多個使用者的列表。
2)關鍵字許可權部分由grant後跟一種或多種許可權組成。如果在同一條grant語句中有多個許可權,許可權之間用逗號分隔。
3) 表名部分由關鍵字o n起頭並列出準備在其上授權的表。
看下面的詳細介紹,主要是介紹如何把添加、刪除、修改、查詢四種許可權授予使用者,如下:
一、insert
二、update
三、select
提示以public為授權對象時,所有資料庫使用者都獲得指定的許可權。如果使用者的資料庫有15000個使用者,則單獨授權就需要15000次(每個使用者一次),而授權給public,一次即可。
四、delete
命令grant delete,update,select on sample_a to public;對所有資料庫使用者給出指明的許可權,而命令grant select,update,insert,delete on sample_a to teplownd,greerw;只允許使用者teplownd和greerw對錶sample_a做命令中所列出的動作。