Behavior seperti ini sudah di dokumentasikan oleh Oracle. http://www.sc.ehu.es/siwebso/KZCC/Oracle_10g_Documentacion/appdev.101/b10795/adfns_pc.htm#1006171
Dan menurut saya, Oracle mengambil langkah yang tepat dengan tidak menghiraukan role saat kompilasi atau eksekusi stored procedure (dan sejenisnya) pada definer right's. Bayangkan saja jika Oracle memakai role untuk kompilasi/eksekusi tadi, maka setiap perubahan dari role yang kita miliki akan mengakibatkan stored procedure yang kita buat ter-invalidasi, walaupun perubahan tersebut belum tentu berimbas pada procedure tersebut. Dan masih banyak sebab lain yang belum saya ketahui :) Cara yang paling mudah ya tentu dibuatkan script (jangan manual, generate script dengan sql) yang berisi grant2 ke object yang dibutuhkan, atau gunakan saja anonymous block kalau memungkinkan. -- Regards, Rudi Kristanto. ________________________________ From: H Gunawan <[email protected]> To: [email protected] Sent: Monday, June 1, 2009 5:52:47 Subject: Re: [indo-oracle] Role tidak berfungsi Rudi, thanks atas replynya.Memang kurang lebih seperti itu masalahnya dan memang explicit grant bisa menyelesaikan masalahnya sekarang ini, tapi pertanyaannya apakah benar tidak ada cara yang bisa bikin kita Grant lewat Role? Masalahnya, sangatlah tidak praktis melakukan Grant untuk 100 table secara explisit satu per satu kepada lebih dari 20 Developer yang masing2 punya schema sendiri. Kalo saya baca di OTN, ini adalah masalah Invoker's vs Definer's Right. Tapi terus terang saya kurang ngerti masalah ini. sebelumnya saya ucapkan terima kasih. thanks Henry ----- Original Message ----- From: rudi kristanto To: indo-oracle@ yahoogroups. com Sent: Saturday, May 30, 2009 4:03 AM Subject: Re: [indo-oracle] Role tidak berfungsi http://tech. groups.yahoo. com/group/ indo-oracle/ message/15397 http://tech. groups.yahoo. com/group/ indo-oracle/ message/15396 -- Regards, Rudi Kristanto. ____________ _________ _________ __ From: H Gunawan <shguna...@vianet. ca> To: indo-oracle@ yahoogroups. com Sent: Friday, May 29, 2009 17:37:16 Subject: [indo-oracle] Role tidak berfungsi Hi Semua, saya ada sedikit masalah di DB saya. jadi saya punya Role A yang sudah dicreate 2 tahun lalu. Role A adalah akses Insert, Update, Delete untuk semua table di schema 1. Kemudian kemarin di schema 1, saya buat 2 table baru, sebut saja table X dan Y, juga ada procedure Insert_X yang logicnya Insert record ke X. AKses untuk kedua table itu lalu saya assign ke Role A yang selama ini dipake oleh Developer. Masalah yang timbul. ketika login dari schema Developer (bukan schema 1), si Developer bisa melakukan DML ke X maupun Y menggunakan perintah SQL. tapi ketika si Developer membuat procedure yang mirip dengan Insert_X di schemanya, lalu dicompile, terjadi error insufficient privilege tepat di bagian dia akan melakukan DML persis seperti yang dilakukan di SQL. kira2 masalahnya kenapa ya? saya coba google tapi ngga ketemu. tolong pencerahannya thanks Henry [Non-text portions of this message have been removed] Get your preferred Email name! Now you can @ymail.com and @rocketmail. com. http://mail. promotions. yahoo.com/ newdomains/ aa/ [Non-text portions of this message have been removed] ------------ --------- --------- --------- --------- --------- - No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.5.339 / Virus Database: 270.12.46/2142 - Release Date: 05/29/09 17:53:00 [Non-text portions of this message have been removed] New Email addresses available on Yahoo! Get the Email name you've always wanted on the new @ymail and @rocketmail. Hurry before someone else does! http://mail.promotions.yahoo.com/newdomains/aa/ [Non-text portions of this message have been removed]

