Oracle觸發器之 同一表空間下的不同使用者

2021-07-24 19:29:18 字數 721 閱讀 4272

統一表空間不同使用者下書寫觸發器或者查詢等操作,主要的是許可權問題的解決。

下面主要對許可權問題進行說明:

1、觸發器引用表:

觸發器引用表時,它使用表建立者的組成員資格找到未指定的顯示所有者下的表。例如,如果user_1.table_a上的觸發器引用table_b,並且沒有指定table_b的所有者,那麼table_b就必須是由user_1建立的表,或者user_1必須是能訪問到的,或者說是能夠作為table_b的所有者身份來出現。如果連一種條件都不滿足,那麼,拜拜,沒得玩了,當你執行觸發器時,會出現找不到表或檢視的錯誤提示資訊。

2、上面出現的問題,歸根揭底,是沒有操作表的許可權的問題。那麼如何來讓它擁有這個權力呢?我們可以這樣做:

需要授予許可權的方面較多,這裡只針對使用者對錶的增、刪、改、查,進行許可權的設定,主要格式如下:

grent 許可權 on 表名 to 使用者名稱;

e.g grent insert on table_1 to user_1;   --給予追加操作的權力

3、授權情況解釋:

如果在user_1使用者的『table_1』表上的觸發器中對user_2使用者中的『table_2』表進行引用,執行增、刪、改的操作,那麼就需要user_2使用者給予user_1使用者『table_2』的相應的許可權,(登陸user_2使用者,執行grent insert on table_2 to user_1;即需要user_2使用者給予user_1使用者table_2的許可權。).

反之亦然,。

oracle之觸發器

1 oracle中觸發器是當進行操作時觸發事情,進行處理。例如進行對資料表進行插入 更新和刪除時進行觸發事情處理。定義觸發器的是 create or replace trigger before after insert update delete on 資料庫表名 for each row 這是表...

Oracle之觸發器

資料庫觸發器是乙個與表相關聯的 儲存的pl sql程式。每當乙個特定的資料操作語句 insert,update,delete 在指定表上發出時,oracle自定地執行觸發器中定義的語句序列。簡單的來說就當某個條件成立的時候,觸發器裡面所定義的語句就會被自動的執行,因此觸發器不需要人為的去呼叫,也不能...

Oracle觸發器之before delete

剛接觸oracle,新建了乙個before delete的觸發器,但老是報 警告 建立的觸發器帶有編譯錯誤 最後發現是觸發器裡面的語句沒有寫分號的原因。下面帖出來,也供新手參考 1.建立表 create table test1 cardid number,name nvarchar2 20 numb...