Role PostgreSQL a użytkownicy, udzielanie uprawnień

27

Obecnie uczę się różnic między PostgreSQL i MySQL, ponieważ mam nowy projekt, a także zamierzam migrować istniejące oprogramowanie z MySQL do PostgreSQL. Właściwie zacząłem tworzyć tabelę HTML z porównaniem poleceń (dla użytkowników / baz danych / wiersza poleceń itp.) Między nimi. Po przeczytaniu tutaj odpowiedzi zauważyłem, że rolewydaje się być używana jako grupa. Z MySQL Mam dwóch użytkowników, głównie publiczne ( DELETE, INSERT, SELECTi UPDATEuprawnieniami) oraz użytkownika admin z kilkoma dodatkowymi uprawnieniami.

Zasadniczo w wierszu polecenia systemu Windows 7 (tylko programowanie lokalne) ...

  • Czy rola użytkownika, grupy lub luźno używanego terminu jest specyficzna dla PostgreSQL?
  • Jak przyznać tylko określone uprawnienia określonemu użytkownikowi dla wszystkich tabel w bazie danych?
  • Jak przyznać wszystkie uprawnienia określonemu użytkownikowi dla wszystkich tabel w bazie danych?
  • Jak, jeśli w ogóle, czy rola porównać do użytkownika podczas korzystania GRANTlub REVOKEdo uprawnień użytkownika?
Jan
źródło

Odpowiedzi:

48

Rola jest podmiotem że funkcja może jako użytkownik i / lub jako grupa. Rola WITH LOGINmoże być używana jako użytkownik, tzn. Możesz się z nią zalogować. Każda rola może funkcjonować jako grupa, w tym role, które można również zalogować jako. Tak więc „użytkownik” i „grupa” są w zasadzie terminami wskazującymi zamierzone użycie roli, nie ma między nimi żadnej różnicy. Nawet w wersji SQL PostgreSQL oba są używane mniej więcej jako synonimy. Na przykład dokumentacja CREATE USERmówi:

CREATE USER to teraz alias dla CREATE ROLE.

Przyznawanie wszystkiego ... patrz instrukcja obsługiGRANT . Prawdopodobnie faktycznie chcesz przyznać uprawnienia, ALL TABLES IN SCHEMA publica nie wszystkie tabele w bazie danych.

Przyznanie niektórych praw ... to samo, ale na przykład zamiast GRANT ALLużycia GRANT SELECT, INSERT. Ponownie zobacz instrukcję.

Rola to użytkownik i / lub grupa. Możesz przyznać tylko role, ponieważ role są wszystkim, co istnieje.

Craig Ringer
źródło
Świetne wyjaśnienie!
sharadov
Więc ... jaka jest składnia przyznawania wszystkich praw do wszystkich tabel w schemacie publicznym?
AlxVallejo
@AlxVallejo to powinno pomóc . Wypróbuj górny link lub przeczytaj GRANTstronę dokumentacji, na której znajduje się listaALL TABLES IN SCHEMA
Craig Ringer