Gdy próbuję wykonać widok, który zawiera tabele z różnych schematów, generowane są niewystarczające uprawnienia ORA-001031. Te tabele mają uprawnienie do wykonywania schematu, w którym utworzono widok. Jeśli wykonam instrukcję SQL tego widoku, działa. czego mi brakuje?ORA-01031: niewystarczające uprawnienia podczas wybierania widoku
Odpowiedz
Jako właściciel tabeli musisz przyznać dostęp SELECT w tabelach podstawowych do użytkownika, dla którego działa instrukcja SELECT jako.
grant SELECT on TABLE_NAME to READ_USERNAME;
Jeśli widok jest dostępny za pośrednictwem procedury przechowywanej, przyznanie wykonania jest niewystarczające, aby uzyskać dostęp do widoku. Musisz wyraźnie przyznać wybór.
W końcu udało mi się. Odpowiedź Steve'a jest słuszna, ale nie we wszystkich przypadkach. Nie powiedzie się, gdy widok jest wykonywany z trzeciego schematu. Aby to działało, musisz dodać opcję dotacji:
WYBÓR GRANTOWY W [TABLE_NAME] NA [READ_USERNAME] Z OPCJĄ GRANTOWANIA;
ten sposób [READ_USERNAME] można również udzielać wybierz przywilej nad widoku do innego schematu
Q. Kiedy jest „grant” z opcją wymagane?
A. jeśli widok jest wykonany z trzeciego schematu.
Przykład: schematu DSDSW ma widok o nazwie view_name
a) that view selects from a table in another schema (FDR.balance)
b) a third shema X_WORK tries to select from that view
Typowe dotacje: dotacji wybrać na dsdw.view_name do dsdw_select_role; dotacja dsdw_select_role do fdr;
Ale: fdr pobiera wybierz liczbę (*) od dsdw.view_name; BŁĄD w linii 1: ORA-01031 : niewystarczające przywileje
problem dotacja:
grant select on fdr.balance to dsdw with grant option;
teraz FDR: select count (*) z dsdw.view_name; 5 rzędów
Pozwolę sobie podsumować.
Po utworzeniu widoku zawierającego obiekt różnych właścicieli, inni właściciele muszą przyznać właścicielowi widoku opcję "z opcją przyznania". Więc, właściciel widok może udzielić innym użytkownikom lub schematów ....
Przykład: user_a jest właścicielem tabeli nazywa mine_a User_b jest właścicielem tabeli o nazwie yours_b
Powiedzmy user_b chce aby utworzyć widok z złączenia z mine_a i yours_b
dla widoku pracować dobrze, user_a ma dać „grant wybrać na mine_a do user_b z opcją grantu”
Wtedy user_b przyznaniu select tego celu wszyscy.
Jeśli widok jest dostępny za pośrednictwem procedury przechowywanej, przyznanie wykonania jest niewystarczające, aby uzyskać dostęp do widoku.Musisz wyraźnie przyznać wybór.
po prostu wpisz tę
udzielić wszystkich do wiadomości publicznej;
Aby użyć widoku, użytkownik musi mieć odpowiednie uprawnienia, ale tylko dla samego widoku, a nie obiektów leżących u jego podstaw. Jeśli jednak uprawnienia dostępu do podstawowych obiektów widoku zostaną usunięte, użytkownik nie ma już dostępu. Takie zachowanie występuje, ponieważ domena bezpieczeństwa używana, gdy użytkownik pyta o widok, jest nazwą definiującą widok. Jeśli uprawnienia dla obiektów podstawowych zostaną odwołane z poziomu definiującego widok, widok stanie się nieważny i nikt nie będzie mógł go użyć. Dlatego nawet jeśli użytkownik uzyskał dostęp do widoku, użytkownik może nie mieć możliwości korzystania z widoku, jeśli uprawnienia definiującego zostały odwołane z obiektów leżących u podstaw widoku.
Oracle Documentation http://docs.oracle.com/cd/B28359_01/network.111/b28531/authorization.htm#DBSEG98017
- 1. Niewystarczające uprawnienia podczas dodawania ograniczenia FK (Oracle)
- 2. Gmail API 403 Niewystarczające uprawnienia Domena globalna
- 3. Chmura Firestore: Brak lub niewystarczające uprawnienia
- 4. Szef kuchni: Niewystarczające uprawnienia do tworzenia katalogu w C:
- 5. mysqldump: niewystarczające uprawnienia do pokazania funkcji tworzenia "nazwa funckacji"
- 6. Dlaczego struktura encji tworzy podzapytanie podczas wybierania z widoku?
- 7. Niewystarczające zasoby winsock
- 8. Jak zastosować CSS do menu podczas wybierania?
- 9. Zapobieganie zdarzeniu onClick podczas wybierania tekstu
- 10. Zatrzymaj przewijanie strony podczas wybierania/przeciągania tekstu.
- 11. Ukryj tonu DTMF podczas wybierania numeru
- 12. ORA-00947 Niewystarczające wartości podczas deklarowania typu globalnie
- 13. Uprawnienia Role i uprawnienia
- 14. Sprawdź, czy użytkownik ma uprawnienia do wybierania/aktualizowania/... tabeli/funkcji/... w PostgreSQL
- 15. Przytnij podczas wybierania z Galerii w systemie Android 4.4
- 16. iPhone: Czy można ukryć klawiaturę podczas wybierania UITextField?
- 17. Jak uniknąć zakleszczenia podczas wybierania z połączonych tabel?
- 18. Jaki jest domyślny kolor tła przeglądarki podczas wybierania tekstu?
- 19. GWT 2.4 Automatyczne przewijanie DataGrid podczas wybierania elementu
- 20. Domyślnie do zakładki "Przeglądaj" podczas wybierania obrazów z Biblioteki multimediów?
- 21. Jak używać jQuery do ignorowania wielkości liter podczas wybierania?
- 22. Do czego służy symbol caret^w css podczas wybierania elementów?
- 23. jak zmienić opcje jednego wyboru podczas wybierania innego?
- 24. Kdb +: jak kontrolować uprawnienia i uprawnienia
- 25. Uprawnienia (uprawnienia) SUPER dla tej operacji
- 26. python shutil.copytree - ignoruj uprawnienia
- 27. Usuwanie kontrolera widoku z pamięci podczas tworzenia nowego kontrolera widoku
- 28. uprawnienia servicecontroller
- 29. UserPrincipal.FindByIdentity Uprawnienia
- 30. Uprawnienia Django
Co jeśli dba przyznaje przywilej. Nie otrzymuję tej pracy, mimo że użytkownik otrzymuje uprawnienie dba do widoków utworzonych i bazowych tabel. – kinkajou
dziękuję, że nadal pomaga ludziom :) – Ilaria