Jaka jest różnica między tymi dwoma elementami? W obu przypadkach? co dzieje się z przywilejami przyznanymi na tę funkcję? Czy są automatycznie unieważniane w obu przypadkach i muszą być ponownie udostępniane podczas ponownego tworzenia? Uprzejmie wyjaśnij.TWORZENIE LUB WYMIANA v/s Upuszczenie funkcji i jej ponowne utworzenie
6
A
Odpowiedz
14
Po upuszczeniu obiektu wszystko, co z nim jest związane, również zostanie upuszczone, w tym uprawnienia. Nie dotyczy to CREATE OR REPLACE.
SQL> create procedure p1 is
2 begin
3 null;
4 end;
5/
Procedure created.
SQL> grant execute on p1 to xyz;
Grant succeeded.
SQL> select * from user_tab_privs_made
2/
GRANTEE TABLE_NAME GRANTOR PRIVILEGE GRA HIE
------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --- ---
XYZ P1 APC EXECUTE NO NO
SQL> create or replace procedure p1 is
2 n pls_integer;
3 begin
4 n := 1;
5 end;
6/
Procedure created.
SQL> select * from user_tab_privs_made
2/
GRANTEE TABLE_NAME GRANTOR PRIVILEGE GRA HIE
------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --- ---
XYZ P1 APC EXECUTE NO NO
SQL> drop procedure p1;
Procedure dropped.
SQL> create or replace procedure p1 (p in out pls_integer) is
2 begin
3 p := p+1;
4 end;
5/
Procedure created.
SQL> select * from user_tab_privs_made
2/
no rows selected
SQL>
4
Wierzę, że jeśli zastąpić funkcję, przywileje pozostać nienaruszone, chociaż zazwyczaj lubią tworzyć synonimy publicznych i przywilejów dotacje do tych.
REPLACE jest opcjonalnym kluczowe użyte w definicji obiektów (DDL) do ręcznym starszego definicji Objet z nowym. Zachowuje on uprawnienia dostępu do obiektu w trakcie procesu modyfikacji definicji . Jeśli obiekt zostanie upuszczony i odtworzony, jego uprawnienia zostaną utracone.
Powiązane problemy
- 1. Javassist: ponowne utworzenie klasy - usunąć pierwsze lub odszraniać() i modyfikować?
- 2. Wymiana wyjątkowo powolnej funkcji pow()
- 3. Jak mogę zadeklarować wartość @, ale uniemożliwić jej utworzenie ivar?
- 4. Czy upuszczenie i odtworzenie indeksu może przyspieszyć usuwanie SQL?
- 5. Najprostszy sposób na ponowne utworzenie wielu gałęzi w jednej linii
- 6. upuszczenie globalnego tabeli tymczasowej
- 7. Ponowne użycie menedżera encji przez em.clear() lub utworzenie nowego menedżera encji?
- 8. Fragmenty Odcięcie/Ponowne dołączanie Vs Pokaż/ukryj
- 9. Python z matplotlib - ponowne używanie funkcji rysowania
- 10. CNG: Kiedy używać funkcji BCrypt * vs NCrypt * rodziny funkcji
- 11. AKTUALIZACJA i WYMIANA części łańcucha
- 12. Wymiana uczestnika/funkcja i interfejs w D2
- 13. SQLAlchemy: Tworzenie i ponowne używanie sesji
- 14. Składanie funkcji według potrzeb i szybkie jej obliczanie
- 15. Najlepsze praktyki: używanie przestrzeni nazw lub ponowne otwieranie przestrzeni nazw?
- 16. Ponowne zadeklarowanie funkcji w klasie C++
- 17. Function.apply vs. funkcji Function.prototype.apply
- 18. Wymiana tematów a bezpośrednia wymiana w RabbitMQ
- 19. Jak zmienić przeciągnięcie i upuszczenie obrazu w połowie przeciągnięcia?
- 20. OCaml: Deklaracja funkcji przed jej zdefiniowaniem
- 21. Wysyłanie aplikacji na tło i ponowne jej uruchamianie od czasu do czasu w XCTest
- 22. GTK + 3 StatusIcon wymiana
- 23. Wymiana Maven?
- 24. Upuszczenie tabeli powoduje zawieszenie się MySQL
- 25. Tworzenie instancji HttpPostedFileBase (lub jej odziedziczonego typu)
- 26. Aktualizacja lub ponowne ładowanie magazynu ExtJs ComboBox
- 27. Scala kropka składnia (lub jej brak)
- 28. Wymiana tematów RabbitMQ i round robin
- 29. JS - wymiana własności
- 30. ponowne idiom kopiowaniem i-swap
Może być źle, ale czy utrzymana jest również historia audytu? – Rob