Jak poradzić sobie z brakiem uprawnień na poziomie schematu w Oracle? Architektura bezpieczeństwa Oracle działa dobrze w przypadku aplikacji, które potrzebują tylko uprawnień na poziomie obiektu, i działa dobrze w przypadku DBA, które wymagają kilku ograniczeń. Wydaje się jednak, że istnieje duża luka w architekturze dla programistów wykonujących programowanie z aplikacją front-end i PL / SQL w wielu schematach. Oto niektóre z moich opcji z ich wadami:
Niech każdy programista wykona programowanie we własnym schemacie. DBA przyznaje uprawnienia na poziomie obiektowym potrzebującym ich programistom. Opracowanie każdego pakietu musi być wykonane przez DBA. Główną wadą jest to, że programiści będą korzystać z bazy danych jak trochę wiadra ze szkodą dla wydajności bazy danych. Chcę, aby programiści rozwijali się w bazie danych, ale ta metoda bardzo by go zniechęciła.
Daj każdemu programiście nazwę użytkownika / hasło do kilkunastu schematów, w których trzeba wykonać programowanie. Przyznaj uprawnienie schematu aplikacji do tworzenia procedur, tabel itp. Niektóre z wad tego podejścia polegają na tym, że programiści muszą utrzymywać wiele loginów i są rzadko zalogowani jako sami. Trudne jest także tworzenie schematów krzyżowych.
Przyznaj programistom uprawnienia do uwierzytelniania proxy na każdym schemacie, dla którego muszą oni opracowywać. Dzięki temu są zalogowani jako sami, bez konieczności nadawania im uprawnień innych niż uprawnienia proxy. Wady polegają na tym, że programiści muszą utrzymywać osobne połączenia dla każdego schematu, dla którego są proxy, tworzenie schematów krzyżowych jest bardziej kłopotliwe, ponieważ połączenia muszą być ciągle zmieniane, a pakiety korzystające z łączy publicznych baz danych z przekazanym uwierzytelnieniem nie kompilują się w połączeniach proxy.
Nadaj każdemu programistowi uprawnienia DBA. - Minusem tutaj jest bezpieczeństwo. Żaden programista schematu nie może być trzymany poza jakimkolwiek schematem, a każdy programista może podszyć się pod dowolnego innego programistę (DBA).
Wydaje się, że brakuje opcji przyznania każdemu programatorowi SELECT / INSERT / CREATE / etc. uprawnienia do schematu, w którym muszą się rozwijać. Logują się, aby wykonywać swoją pracę przy użyciu jednego połączenia. Nowe obiekty w schemacie, do których mają dostęp, są natychmiast dostępne.
Czy coś brakuje? Jak radzisz sobie z programistami aplikacji, które zajmują się tworzeniem PL / SQL?