Usuwanie "Roli", "Grupy ról"

0

Cześć, mam pytanie do Was. Przejąłem po kimś bazę danych i mam ją poprowadzić jakby od nowa.
Na obecną chwilę panuje na niej straszny bałagan a swoje zadanie chciałbym rozpocząć od pousuwanie Ról, których jest mnóstwo i szpecą całe drzewko widokowe.

Próbowałem standardowego polecenia:
drop role nazwa_roli;

Niestety otrzymuję powiadomienie w konsoli:

BŁĄD: rola "nazwa_roli" nie może być usunięta ponieważ istnieją zależne od niej obiekty.

Tych obiektów, typu tablice czy funkcje jest mnóstwo i są w dalszym ciągu obsługiwane więc nie chcę ich DROP'ować. Wiem, że można zrobić to poprzez REVOKE ale to działa na pojedyncze obiekty.
Docelowo chciałbym po prostu usunąć masowo wszystkie Role - czy ktoś wie jak to zrobić?

P.S. Korzystam z pgAdmin III.

1
  1. i szukałeś i nigdzie nie było... https://www.postgresql.org/docs/9.5/static/role-removal.html
  2. nie możesz usunąć WSZYSTKICH ról bo obiekty muszą mieć właściciela
0
  1. i szukałeś i nigdzie nie było... https://www.postgresql.org/docs/9.5/static/role-removal.html

Szukałem wszędzie, gdzie cokolwiek rozumiałem, niestety język angielski nie jest moją mocną stroną dlatego rozwiązań dla "moich problemów" nie szukam w dokumentacji Postgresa.

  1. nie możesz usunąć WSZYSTKICH ról bo obiekty muszą mieć właściciela

Miałem na myśli wszystkie, które są już nieaktywne. W tym wypadu chcę usunąć wszystkie Role przypisane do pracowników, którzy "przygodę" z tą firmą zakończyli.

Czy możesz mi napisać jak użyć poniższego polecenia:

REASIGN OWNED BY doomed_role TO successor_role; 
DROP OWNED BY doomed_role; 
DROP ROLE doomed_role;

Co mam wpisać w miejsce successor_role? Bo rozumiem, że w doomed_role muszę wpisać Rolę którą chcę usunąć.

0

jak pisałem wcześniej - nie możesz usunąć wszystkich ról bo obiekty muszą mieć właściciela. Jeśli nie chcesz usuwać obiektów, których właścicielem jest usuwana rola to musisz tym obiektom przypisać nowego właściciela. Do tego służy REASIGN OWNED https://www.postgresql.org/docs/9.4/static/sql-reassign-owned.html
Natomiast DROP OWNED usuwa WSZYSTKIE obiekty, których właścicielem jest podana rola https://www.postgresql.org/docs/9.4/static/sql-drop-owned.html

I polecam zapoznać się z dokumentacją, oraz przeczytać jakiś kurs używania googla

0

I polecam zapoznać się z dokumentacją, oraz przeczytać jakiś kurs używania googla

A ja polecam nauczyć się czytać ze zrozumieniem bo widzę, że słabo wychodzi. Napisałem, że język angielski nie jest moją mocną stroną dlatego unikam używania dokumentacji Postgres'a. Nie mniej jednak dzięki za pomoc.
Poniższe polecenie rozwiązuje mój problem:

DROP OWNED BY nazwa_roli;
DROP ROLE nazwa_roli;
1

no to czego chcesz używać jak nie dokumentacji????????

0
abrakadaber napisał(a):

no to czego chcesz używać jak nie dokumentacji????????

a od czego jest forum?

1

od odpowiadania na pytania, na które nie ma odpowiedzi w pierwszym linku z googla

0
abrakadaber napisał(a):

od odpowiadania na pytania, na które nie ma odpowiedzi w pierwszym linku z googla

Chyba na prawdę masz problemy z czytaniem ze zrozumieniem. Pierwszy link z google prowadzi do dokumentacji. Dobra jak zamknąć ten temat bo ta rozmowa prowadzi donikąd a temat już wyjaśniony.

1

@Du Gi: Jak chcesz sprzątać i prowadzić bazę bez umiejętności czytania dokumentacji?
Nie trzeba być jakimś wymiataczem z angielskiego by zrozumieć dokumentacje, które nie są pisane zawiłym językiem. Trochę samozaparcia i przysiedzenia z google translate i nie będziesz miał z tym czytaniem problemu.
Pisanie, że zastąpienie dokumentacji jest możliwe dzięki forum, to zakrawa o bezczelność.
Podjąłeś wyzwanie zawodowe któremu nie jesteś w stanie podołać i chcesz przerzucić na forum rozwiązywanie problemów, to % z wynagrodzenia też oddasz tym którzy odpowiedzą na Twoje pytania?
Ciekawe podejście, życzę powodzenia...

0

Słuchaj.. Metodą prób i błędów doszedłem do momentu w którym piszę bardzo złożone funkcje i procedury. Edukowałem się przy pomocy książek napisanych w języku polskim, dokumentacja wówczas była mi zbędna. Niestety są rzeczy, które w tych książkach opisane nie są lub są opisane w sposób dla mnie niezrozumiały. Owszem są opisane w dokumentacji ale nawet po przetłumaczeniu w translatorze dalej nie wiem co robić. W takich sytuacjach staram się szukać pomocy w internecie. I tak też zrobiłem teraz.

0

Wyszedłeś ze złego założenia nie ma innej drogi niż czytanie dokumentacji...

0

Można iść drogą obrażania innych użytkowników...
Można też wyciągać wnioski z rad, które się dostaje od innych...

Wybór należy do Ciebie.

0
Panczo napisał(a):

Można iść drogą obrażania innych użytkowników...
Można też wyciągać wnioski z rad, które się dostaje od innych...

Wybór należy do Ciebie.

Można też metodą prób i błędów wywalić wszystko zamiast przenieść gdzie indziej i zostawić bo może coś jednak będzie przydatne :)

0

Słowo poparcia dla DuGi :)
Sam też często mam problemy z angielskimi dokumentacjami a w PL często nie można znaleźć wystarczających informacji. Często dla kogoś kto wie opisywane problemy wydają się banalne. Na forum kieruję się prostą zasadą: wiem i chcę pomóc to pomagam, nie wiem lub nie chcę pomóc to nie pomagam ale NIE wyszydzam, NIE wytykam błędów, NIE wyśmiewam. Sam w pracy mam teraz pod sobą "żółtodzioba". Często pyta o rzeczy które dla mnie już na tym etapie mojej wiedzy są banalne ale NIE zdarzyło mi się jeszcze "odesłać go z kwitkiem" lub "wyśmiać". Więcej życzliwości Panie i Panowie. Pozdrawiam

2

@KiK: Zauważ, że nie obraziłem OP tylko dałem radę, aby przemógł się z tym czytaniem po angielsku. Każda dokumentacja jest pisana w "Basic English" więc to naprawdę nie jest problem nauczyć się ją czytać...
Jest jednak różnica w pomaganiu komuś, bo ma problem i sobie nie radzi, niż osobie, która jasno deklaruje, że nie musi czytać dokumentacji, bo tą można zastąpić pytaniami na forum.
I to nie my szydziliśmy tylko zostaliśmy wprost obrażeni. Możesz mieć błędny obraz bo ostatni post autora został usunięty, więc czytając tylko moje posty jeden po drugim traci się obraz jaki tu był przed moderowaniem.

0

Mój post był raczej bardziej ogólny niż odpowiedź na jakiegoś konkretnego posta w tym wątku (@Panczo jeżeli odniosłeś to do siebie to sorki nie miałem takiego zamiaru). Tutaj pełna zgoda że czasami lepiej jest kogoś "zmusić" do działania niż dawać mu cały czas gotowce (pełna zgoda). Generalnie chodziło mi o więcej ogólnej wyrozumiałości i wrażliwości bo ja także często czegoś nie wiem i pytam na różnych forach i czasami spotykam się z różnymi reakcjami.
Pozdrawiam wszystkich serdecznie. KiK :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1