Jestem nowy na szynach, więc mam nadzieję, że to nie jest głupie pytanie.Jak ustawić własność tabeli w szynach z postgresql?
Próbuję zrobić szyn używać bazy danych PostgreSQL z dwóch różnych kont użytkownika. Chcę jednak móc przełączać się między tymi kontami, więc mają takie same uprawnienia do bazy danych (bez tego, aby obaj byli superużytkownikami postgreSQL idealnie).
Stworzyłem rolę w PostgreSQL, która jest właścicielem bazy danych. Następnie przypisano do tej roli dwa konta użytkowników. Jednak za każdym razem, gdy wykonuję numer rake db:migrate
, konto użytkownika (a nie rola) stanie się właścicielem tabeli Tabela. Jeśli zmienię użytkowników, drugi użytkownik nie będzie miał odpowiednich uprawnień do tabel utworzonych przez pierwszego użytkownika.
Powodem posiadania dwóch kont jest możliwość szybkiego przełączania, np. kiedy muszę zmienić hasło bez przestojów.
Czy istnieje sposób, aby powiedzieć szynom, aby używały określonej roli jako właściciel podczas tworzenia tabel? (lub być może istnieje lepszy sposób, aby osiągnąć ten cel bez dwóch kont w tej samej roli PostgreSQL?)
UPDATE: Do tej pory znalazłem this solution uruchomić ręcznie jako skrypt zewnętrznego i zmienić własność wszystkich stołów do roli nologin, ale mam nadzieję na coś bardziej eleganckiego lub dobrze pasującego do szyn.
Dzięki za szybką odpowiedź. Tak więc patrząc na pierwszą opcję: zamiast mieć jedną rolę "nadrzędną" z dwoma użytkownikami, będę mieć dwóch użytkowników przyznanych po drugiej? na przykład 'GRANT user1 TO user2; PRZYZNAĆ użytkownika 2 DO użytkownika 1? A to będzie trzeba ręcznie wykonać za każdym razem przed "przełącznikiem"? Jeśli używam "PRZYCHODNICH DOMYŚLNYCH", mogę to zrobić tylko raz. Dobrze? – gingerlime
['GRANT'] (http://www.postgresql.org/docs/current/interactive/sql-grant.html) oznacza stałe przyznawanie uprawnień i jest potrzebne tylko raz. –
Przepraszam za bycie głupim, ale nie rozumiem, jak to działa. Wydaje się, że granty są hierarchiczne, np. 'GRANT user1 TO user2', więc użytkownik2 będzie miał takie same uprawnienia jak użytkownik1, ale nie na odwrót. Potrzebuję obu użytkowników, aby mieli dokładnie takie same uprawnienia, niezależnie od tego, który użytkownik utworzył tabelę. Być może czegoś brakuje. – gingerlime