2010-11-19 8 views
2

3 Oracle kullanıcısı A, B, C var ve B (A) olarak bir tabloyu C'den A'ya almak için kullanmak istiyorum. B'ye bağlandığında, "Tablo A.T1'i T1'den select * olarak oluştur" C". Ama sql deyimini B'nin yarattığı/sahibi olduğu bir prosedüre koyduğumda, "ORA-01031: yetersiz ayrıcalıklar" elde etmeye devam ediyorum. Sysdba olarak, tüm haklarımı (dba) B'ye verdim. Burada neyi özlüyorum? Teşekkür ederim.Bir Oracle prosedürü, yaratıcısının ayrıcalıklarını mi devralıyor?

cevap

2

Aşağıdaki kullanıcıya B kullanıcısını verdiniz mi? Bir Definer prosedürü (varsayılan) saklanan hakları mevcuttur yalnızca ayrıcalıklı olarak

sql> grant create any table to b; 
5

doğrudan kullanıcıya verilmiş olanları değil (DBA) gibi bir rolü sayesinde verilmiş olanlardır. Dolayısıyla Pablo'nun B'nin doğrudan hibe olarak CREATE HERHANGİ BİR TABLO ayrıcalığına sahip olması gerektiği doğrudur.

+1

Varsayılan değer, "Sahip Hakkı" değildir. – redcayuga

+1

@redcayuga - +1 ve yakalama için teşekkürler! Kesinlikle haklısın. Cevabımı düzeltmek için güncelledim. –

+0

"AUTHID DEFINER" ...;) Bu varsayılan değerdir. Alternatif, denemek istediğim "AUTHID CURRENT_USER" ... –