Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Cześć
Postanowiłem się bliżej zaprzyjaźnić z Postgresem (obiektywne okoliczności), i mam kilka totalnie lamerskich pytań:
Status połączenia, w Mysql wystarczy:
\s;
i daje wynik:
MariaDB [(none)]> \s; -------------- mysql Ver 15.1 Distrib 5.5.38-MariaDB, for Linux (x86_64) using readline 6.2 Connection id: 1231 Current database: Current user: root@localhost SSL: Cipher in use is DHE-RSA-AES256-SHA Current pager: /usr/bin/less Using outfile: '' Using delimiter: ; Server: MariaDB Server version: 5.5.38-MariaDB Source distribution Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/run/mysqld/mysqld.sock Uptime: 4 hours 18 min 30 sec
A jak podobne sprawdzenie statusu połączenia zrealizować w Postgresql 9.x.
PhpPgAdmin-5.x - loguje się grzecznie, a przy kliknięciu na dowolny button powraca do okna logowania, jak sprawdzić, co mu dolega?
Na tym samym serwerze działa PhpMyAdmin - z nim nie ma żadnych istotnych problemów, także to raczej nie jest wina Nginxa czy Php-fpm.
To samo na FF i Operze, także przeglądarki też nie.
Uprawnienia?
Wszystkie tutki wskazują na:
GRANT ALL_PRIVILEGES on baza_danych TO 'pacjent';
REVOKE ALL_PRIVILEGES on 'baza_danych' FROM 'pacjent';
mam nadzieję, że to prawidłowa metoda...?
Logowanie z szyfrowaniem SSl, to się ustawia tylko w pliku [b]pg_hba.conf[/b], czy można też w bazie danych?
Mysql takie drobiazgi trzyma w bazie danych, dlatego można dla każdego pacjenta ustawić te drobiazgi z osobna.
Szczególnie interesuje mnie wymuszenie szyfrowania dla połączeń non-localhost,w Mysql robi się to tak:
GRANT 'to i owo' ON 'baza_danych' TO 'pacjent'@'%' REQUIRE SSL;
albo certyfikatem x509:
GRANT ALL PRIVILEGES ON test.* TO 'pacjet'@'%' IDENTIFIED BY 'hasełko' REQUIRE X509;
Czy lepiej:
GRANT ALL PRIVILEGES ON test.* TO 'pacjent'@'%' IDENTIFIED BY 'goodsecret' REQUIRE SUBJECT '/C=PL/ST=Silesia/L=Katowice/ O=<FIRMA>/ CN=<jego_wysokość_prezio>';
i gotowe (skrypciarzom dziękujemy za uwagę xD).
Czy w Postgresie jest coś podobnego?
Jak ma ktoś porządne tutki o majstrowaniu z Postgresem, warte uwagi,
(powyżej poziomu sudo apt-get install postgresql-server ) to są mile widziane. xD
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2014-07-20 01:58:49)
Offline
PostgreSQL fajna bazka :)
No więc jeśli chodzi o parametry z postgresql.conf
To listujemy je:
psql -p <port> show all
Jeśli chodzi o dokładne informacje o klastrze bazy (w postgresie baza standalone to takze cluster bazodanowy) danych to konsoli linuksa:
pg_controldata
Co do szyfrowania poleczenia to tak - robi sie to w pg_hba.conf
Poprzez dodanie/zamienienie parametru trust na md5.
UWAGA: pg_md5 swego czasu generowal bledne hashe wiec lepiej odczytywac je z tableli pg_shadow.
Co do tutków to mam w robocie napisany jak zrobić:
PostgreSQL streaming replication + hot-stanby + pgpool-II (watchdog).
W poniedzialek moge Ci podeslac :)
Offline
@jacekalex:
Zapomniałeś napisac jedno - czy zaprzyjaźniasz się z Postgresem jako programista czy admin.
Bo jeśli programista... nie wiem z jakimi bazami do tej pory pracowałeś, ale jeśli z Oraclem to znajdziesz tam wiele wspólnego. Nie wspomnę tu o samym dialekcie SQL (np. INSERT ... RETURNING ...), możliwości więcej niż jednego pola serial (odpowiednika naszoklasowego autoincrement) czy pisania sobie triggerów w Twoim Ulubionym Języku Programowania (o ile pamiętam Perl?)
Jeśli admin... cóż, musisz przyjąć do wiadomości smętną prawdę: to co wiesz o naszejklasie nijak się ma do Postgresa. Może jakiś tam kawałeczek podobny znajdziesz... ale jedynie podobny, bo z tego podobieństwa za chwilę wyjdą różnice.
Dam Ci przykład:
Naszoklasowa baza danych istnieje sobie radośnie w przestrzeni naszej klasy, można sobie jakieś granty dawać albo zabierać.
Poztgresowa baza danych ma zawsze swojego właściciela - dokładnie jednego.
W naszejklasie możesz się połączyć z nasząklasą i się cieszyć.
W Postgresie musisz się połączyć z konkretną bazą danych, nie ma czegoś takiego jak "połączyłem się z postgresem".
W naszejklasie masz użytkowników 'kuciapa'@'localhost', 'kuciapa'@'127.0.0.1', 'kuciapa'@'192.168.0.1' i tak dalej. W rzeczywistości są to różni użytkownicy z różnymi uprawnieniami.
W Postgresie masz użytkownika kuciapa, a przez pg_hba regulujesz mu dostęp z różnych miejsc świata.
A najważniejsze:
PhpMyAdmin jest wspaniałym programem, przemyślanym, wygodnym, ogólnie pierwszym narzędziem które instalujesz na serwerze.
Konsola mysql wystarcza do odtworzenia bazy z dumpu, założenia z roota nowej bazy ew. (jak się od Ciebioe dzisiaj dowiedziałem) do sprawdzenia stanu połączenia.
PhpPgAdmin to taka zabawka, niespecjalnie używalna, i instalowanie jej na dzień dzisiejszy mija się z celem.
Konsola psql wystarcza do wszystkiego co chcesz zrobić włącznie z nauczeniem Postgresa śpiewać.
Polecam zapoznanie się z :
man createuser man dropuser man createdb man dropdb man CREATE_DATABASE man CREATE_USER
No i oczywiście sztandarowe:
man psql
Zwróć uwagę na parametr -e - zobaczysz wtedy jakie dokładnie kwerendy są wykonywane. Przykładowo:
createdb -e -U postgres -O kuciapka kuciapeczka
mało że założy Ci bazę o nazwie "kuciapeczka" z domyślnymi ustawieniami i właścicielem "kuciapka" (zakładam że user "kuciapka" nie ma uprawnień do zakładania baz danych i jako superuser musisz mu to zrobić) - to jeszcze wyświetli wszystkie kwerendy które zostały wykonane, aby takową bazę stworzyć.
To samo dotyczy psql.
Tak przy okazji - dużo można w gógielu znaleźć, czasem można trafić na artykuły podpisane nickiem "depesz" - jeśli taki znajdziesz warto przeczytać, bo to gość który wychował całe pokolenie polskich (i nie tylko) postgresiarzy (i ogólnie bazodanowców).
Przyjemnego postgresienia :)
Ostatnio edytowany przez ethanak (2014-07-20 13:13:18)
Offline
Zdecydowanie jako Admin, potrzebuje serwer Voip Freeswitch i XMPP Ejabberd wygonić do Postgresa.
Wcześniej wszystko chodziło przez ODBC z Mysql, ale zjebał się sterownik Myodbc, i powstała wspaniała okazja, żeby lepiej się zaprzyjaźnić z Postgresem. xD.
Niestety, z bliżej mi nieznanych (i trudnych do zlokalizowania) przyczyn zdechł PHPPGAdmin, muszę się certolić z uprawnianiami w PgAdmin3/Webmin/Konsola, i z tym chyba mnie zaraz szlag trafi.
W tej chwili mam taki numer, że co prawda użytkownik ejabberd jest właścicielem bazy ejabberd, ale tylko bazy, tabel już nie.
Lista baz danych Nazwa | Właściciel | Kodowanie | Porównanie | Ctype | Uprawnienia dostępu ------------+------------+-----------+-------------+-------------+--------------------------- ejabberd | ejabberd | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 |
I tyle może zrobić właściciel bazy ze swoją bazą:
ejabberd=> select * from users; ERROR: permission denied for relation users
I jak to zwykle bywa, im więcej człowiek czyta o danym problemie, tym większy ma bajzel w głowie, bo wszystkie tutki, jakie widzę ograniczają się do podstawowych podstaw opisujących podstawy podstaw, ale już kwestia uprawień jest tam opisana tak, ze co tutek to inna wspaniała recepta - wszystkie do dooopy.
Żeby było weselej, dotyczą domyślnej konfiguracji PGSQL z autoryzacją trust po localhoście, i sytuacją, kiedy praktycznie wszyscy do wszystkich baz mają dostęp.
W dodatku cały net pełny jest przepisów na PGSQL-8,x a ja mam 9.3 obecnie, co tym bardziej sprawy nie ułatwia.
Ostatnio edytowany przez Jacekalex (2014-07-20 17:01:55)
Offline
jeśli coś działa na 8.x (gdzie x>0) to będzie działać na 9.
jak się bawiłeś uprawnieniami to masz doskonałą okazję nauczyć się jak się odpsuwa zepsute bazy.
zaloguj sie jako postgres i daj granta na wszystko w tej bazie userowi ejabberd, powinno pomóc.
ewentualnie (stara dobra szkoła) zrób dumpa w sql, wywal z dumpa niepotrzebne granty, utwórz nową bazę i zaimportuj - sam wiesz że może być szybciej.
Offline
Spokojnie, potrzebuję jakiegoś wygodnego panelu do administrowania Postgresem.
Jak na razie, to tylko [url=http://search.cpan.org/dist/DBD-Pg/Pg.pm]ten[/url] jest bliski idealnej sprawności. xD
Jak na razie PhpPGAdmin wywala do logowania przy każdej akcji, PgAdmin3 jest jakiś trochę pokręcony, elegancko działa zarządzanie bazami w Webminie, ale jest dość siermiężne, i bardzo ubogie w możliwości.
Przy okazji, czy da się edytować uprawnienia poprzez bazę z uprawnieniami, jak w [b]mysql.users[/b].
Pytam, bo pamiętam moje początki z Mysqlem dawno temu, też często coś spartoliłem czy to w Phpmyadminie czy w konsoli, ale w bazie z uprawnieniami zawsze wszystko można błyskawicznie naprawić.
Ostatnio edytowany przez Jacekalex (2014-07-20 18:00:29)
Offline
[quote=Jacekalex]Zdecydowanie jako Admin, potrzebuje serwer Voip Freeswitch i XMPP Ejabberd wygonić do Postgresa.
Wcześniej wszystko chodziło przez ODBC z Mysql, ale zjebał się sterownik Myodbc, i powstała wspaniała okazja, żeby lepiej się zaprzyjaźnić z Postgresem. xD.
Niestety, z bliżej mi nieznanych (i trudnych do zlokalizowania) przyczyn zdechł PHPPGAdmin, muszę się certolić z uprawnianiami w PgAdmin3/Webmin/Konsola, i z tym chyba mnie zaraz szlag trafi.
W tej chwili mam taki numer, że co prawda użytkownik ejabberd jest właścicielem bazy ejabberd, ale tylko bazy, tabel już nie.
Lista baz danych Nazwa | Właściciel | Kodowanie | Porównanie | Ctype | Uprawnienia dostępu ------------+------------+-----------+-------------+-------------+--------------------------- ejabberd | ejabberd | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 |
I tyle może zrobić właściciel bazy ze swoją bazą:
ejabberd=> select * from users; ERROR: permission denied for relation users
I jak to zwykle bywa, im więcej człowiek czyta o danym problemie, tym większy ma bajzel w głowie, bo wszystkie tutki, jakie widzę ograniczają się do podstawowych podstaw opisujących podstawy podstaw, ale już kwestia uprawień jest tam opisana tak, ze co tutek to inna wspaniała recepta - wszystkie do dooopy.
Żeby było weselej, dotyczą domyślnej konfiguracji PGSQL z autoryzacją trust po localhoście, i sytuacją, kiedy praktycznie wszyscy do wszystkich baz mają dostęp.
W dodatku cały net pełny jest przepisów na PGSQL-8,x a ja mam 9.3 obecnie, co tym bardziej sprawy nie ułatwia.[/quote]
Zapodaj to:
GRANT ALL PRIVILEGES ON TABLE moja_tabela TO ejabberd;
pgadmin-III i psql są OK reszta jest psu na budę.
Ostatnio edytowany przez debianus_userus (2014-07-20 17:57:45)
Offline
powtarzam: psql to podstawowe narzędzie. żadne phpowe wynalazki ani klikane klikadła.
masz zestaw poleceń do administrowania postgresem (chyba mniej niż 10) - siadaj i się ucz. do tego co pisałem wcześniej masz pg_dump, pg_dumpall i pg_restore...
Offline
Zapodaj to:
pgadmin-III i psql są OK reszta jest psu na budę.[/quote]
Przy 30 tabelach po jednej?
Nie da rady zrobić akcji w typie:Kod:
GRANT ALL PRIVILEGES ON ALL TABLE IN ejabberd TO ejabberd;???????????????
W tym strasznym, okropnym i lamerskim Mysqlu to 60 sekund bardzo ciężkiego mieszania herbaty i parę ruchów myszką, albo jednego poleconka GRANT, i wszystko działa, bo GRANT na bazę jest dziedziczony na wszystkie elementy składowe bazy.
Natomiast tutki do Postgresa poznaje po tym, że temat uprawnień do baz jest tam tak ujęty, jakby w ogóle nie istniał.
Tymczasem Postgres, jeśli ma być serwerem dostępnym w Necie, i działać z usługami w necie, to musi być skonfigurowany równie starannie, jak Mysql, bez żadnych trust w pg_hba.
Zwłaszcza, ze ma jeszcze wystawić port 5432 do replikacji i zdalnego dostępu, ale to już najmniejszy problem, pg_hba trudne nie jest, choć o certach SSL klienta (certy X509 lub PKCS12) w dokumentacji nic konkretnego nie widziałem na razie, a po wpisaniu cert zamiast md5 w pg_hba.conf Posgres u mnie nie wstaje w ogóle.
Żeby zrozumieć, dlaczego ponad 75% skryptów typu forum, sklepów internetowych i CMSów bazuje na Mysql, to trzeba się ze dwa dni pobawić Postgresem. xD
Pozdro
;-)Ostatnio edytowany przez Jacekalex (2014-07-20 18:13:56)
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)
Offline
da się.
jest taka strona postgresql.org i tam jest dokumentacja.
btw. admin który przez 60 sekund musiałby ruszać myszą żeby dać userowi granta na wszystko chyba następnego dnia stałby w kolejce na bezrobociu.
nie mam teraz kompa przed nosem, nie będę się wydurniał z pisaniem z komórki bo i literówkę mogę zrobić, i składni jakiegoś rzadko używanego polecenia mogę nie pamiętać. albo znajdziesz sobie w dokumentacji - albo napisz ok. 2 w nocy, powinienem być już trzeźwy i świeży przy kompie.
Offline
Zobacz czy to pójdzie ??
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO ejabberd;
http://www.postgresql.org/docs/9.3/static/ddl-schemas.html
Piszę z głowy bo nie mam postgresa pod ręką.
Ostatnio edytowany przez debianus_userus (2014-07-20 18:25:13)
Offline
Weszło czysto:
postgres=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO ejabberd; GRANT postgres=# \l Lista baz danych Nazwa | Właściciel | Kodowanie | Porównanie | Ctype | Uprawnienia dostępu ------------+------------+-----------+-------------+-------------+--------------------------- ejabberd | ejabberd | UTF8 | pl_PL.UTF-8 | pl_PL.UTF-8 |
Kiedy próbowałem tego wcześniej (trafiłem na powyższy sznurek)
to nie działało.
Przy okazji znalazłem przyczynę błędu:
jak importowałem schemat ejabberd.sql w Webminie, to ejabberd nie miał do niego dostępu.
Kiedy założyłem bazę od nowa, ale zaimportowałem w konsoli schemat.sql logujac się jako ejabberd, to pacjent ejabberd ma prawo do tablic.
Żeby na to wpaść, musiałem odpalić Freeswitcha z opcją "PostreSQL in the Core" - on sobie sam automatycznie tworzy bazę i tabele,
i uprawnienia miał prawidłowe.
Co w niczym nie zmienia faktu, że Postgresa mam jak na razie po dziurki od nosa.
Może jest i wspaniały, ale znacznie słabiej dopracowany, niż Mysql.
Przykład?
Zmieniłem mu lokalizację socketu UNIX na /var/run/postgresql93.sock - restart, i lsof nie widzi, żeby na tym sockecie cokolwiek wisiało, psgl nie może się połaczyć, bo socketu szuka w [b]/run/postgresql/./.s.PGSQL.5432.sock[/b] - krótko pisząc, cyrk na kołkach, którego w Mysqlu nigdy w życiu nie widziałem.
Dlaczego psql nie czyta konfigu postgresa?
Diabli wiedzą.
Ostatnio edytowany przez Jacekalex (2014-07-20 21:00:00)
Offline
psql nie ma czytać konfigów tylko łączyć się z serwerem.
przestań zachowywać się jak windziarz.
linux jest inny niż wundiws - ergo jest gorszy.
postgres jest inny niż naszaklasa - ergo jest gorszy.
to samo pewnie powiesz o oraclu czy mssql?
po kim jak po kim - ale po Tobie takich tekstów się nie spodziewałem.
Offline
[quote=ethanak]psql nie ma czytać konfigów tylko łączyć się z serwerem.
przestań zachowywać się jak windziarz.
linux jest inny niż wundiws - ergo jest gorszy.
postgres jest inny niż naszaklasa - ergo jest gorszy.
to samo pewnie powiesz o oraclu czy mssql?
po kim jak po kim - ale po Tobie takich tekstów się nie spodziewałem.[/quote]
Przesadzasz, jak zwykle.
Ja na reszcie obczaiłem, o co biega z tymi uprawnieniami, pierwsza zasada, tabele musi robić właściciel bazy, druga zasada, nikt nie wie, jak to zmienić.
Z innymi kwestiami konfiguracyjnymi Postgresa zaczynam sobie radzić,
choć muszę przyznać, ze dokumentacja jest znacznie bardziej ogólnikowa, niż dokumentacja Mysqla pozostała w spadku po Sunie.
Wyczaiłem też, jak uprawnienia konfigurować w PgAdmin3.
Co bynajmniej nie oznacza, że rozumiem logikę działania uprawnień w Postgresie, ale na to jeszcze przyjdzie czas.
Pozdro
Ostatnio edytowany przez Jacekalex (2018-03-05 15:05:52)
Offline
wciórności, nie wypowiem, kumie Barbaronie...
masz takiego śmiesznego postgresa gdzie nie ma alter table?
nie przesadzam.
Offline
[quote=Jacekalex]Przykład?
Zmieniłem mu lokalizację socketu UNIX na /var/run/postgresql93.sock - restart, i lsof nie widzi, żeby na tym sockecie cokolwiek wisiało, psgl nie może się połaczyć, bo socketu szuka w [b]/run/postgresql/./.s.PGSQL.5432.sock[/b] - krótko pisząc, cyrk na kołkach, którego w Mysqlu nigdy w życiu nie widziałem.
Dlaczego psql nie czyta konfigu postgresa?
Diabli wiedzą.[/quote]
Okropne masz te problemy :-)
Zadam głupie pytanie - nadałeś odpowiednie uprawnienia dla [b]/var/run/postgresql93.sock[/b] ?
Restart zrob:
pg_ctl -D /path/do/bazy stop
i dalej
pg_ctl -D /path/do/bazy start
Offline
ALTER TABLE jest, ale ani ten Postgres, ani autor postu powyżej nie podpowiedzieli, jak się tego używa w kontekście np uprawień.
Wiem tylko, jak się przy pomocy tej funkcji zmienia hasła w Postgresie.
Offline
No kur...
Rozumiem że masz pluszowego misia i musisz go przytulać. Niestety, czasem trzeba wydorośleć.
Witamy w świecie profesjonalnych baz danych.
Offline
[quote=Jacekalex]ALTER TABLE jest, ale ani ten Postgres, ani autor postu powyżej nie podpowiedzieli, jak się tego używa w kontekście np uprawień.
Wiem tylko, jak się przy pomocy tej funkcji zmienia hasła w Postgresie.[/quote]
Zobacz tu:
http://www.postgresql.org/docs/9.3/static/sql-alterdefaultprivileges.html
Offline
Oj tam, zaraz "profesjonalnych baz danych".
Baza, jak baza, serwer jak serwer, może od strony administracyjnej wygląda trochę lepiej od Firebirda, ale gorzej od Mysqla/Mariadb/Percona.
Wiem, że programiści go chwalą, za jego doskonałość, ale w różnych bajkach fanboyów takiego czy innego rozwiązania więcej jest religii, niż faktów.
Z samego Postgresa widzę, ze za tydzień u mnie będzie chodził tak, jak ma chodzić, i jak od lat chodzi MariaDB (taka lamerska baza danych, która nie nadaje się w ogóle do żadnych profesjonalnych zastosowań, dlatego poza kioskiem pani Zosi, używają go tylko takie dziadostwa, jak Google i Wikipedia ), :D
Dlatego nie ma go co porównywać z takimi pro-serwerami, jak Firebird i Postgres, bo na nich to można czasem nawet Podatkową Książkę Przychodów i Rozchodów wielkiej rodzinnej firmy prowadzić. xD
Pozdro
;-)
___
[quote=debianus_userus][quote=Jacekalex]ALTER TABLE jest, ale ani ten Postgres, ani autor postu powyżej nie podpowiedzieli, jak się tego używa w kontekście np uprawień.
Wiem tylko, jak się przy pomocy tej funkcji zmienia hasła w Postgresie.[/quote]
Zobacz tu:
http://www.postgresql.org/docs/9.3/static/sql-alterdefaultprivileges.html[/quote]
Dzięki, to już wygląda nie najgorzej, będzie sobie trzeba troszkę notatek na ten temat zrobić. :D
Na razie baza chodzi, teraz się biorę za certyfikaty x509.
Ostatnio edytowany przez Jacekalex (2014-07-20 20:51:00)
Offline
[quote=Jacekalex]wygląda trochę lepiej od Firebirda, ale gorzej od Mysqla/Mariadb/Percona.[/quote]
a) bazy danych nie są od wyglądania.
b) coś wspominałem o windowsie i linuksie?
c) porównaj z oraclem, mssqlem, db2 - wtedy pogadamy
Offline
Pierwszy sukces:
Poszło dosyć łatwo, bo już zrobiłem testowe CA (łącznie z tydzień gimnastyki z certami, co ciekawe, ruszyły dopiero po zamianie OpenSSL na LibreSSL - brawa dla TEAMU OpenBSD), a certy PKCS12 klienta są sprawdzone na Nginxie, Apachu i Lighttpd.
Malutki test z Postgresem:
mv ~/.postgresql/ ~/.postgresql2/
psql -h localhost -U pacjent -W test Hasło użytkownika pacjent: psql: FATAL: connection requires a valid client certificate FATAL: no pg_hba.conf entry for host "127.0.0.1", user "pacjent", database "test", SSL off
mv ~/.postgresql2/ ~/.postgresql/
psql -h localhost -U pacjent -W test Hasło użytkownika pacjent: psql (9.3.3) Połączenie SSL (szyfr: DHE-RSA-AES256-SHA, bity: 256) Wpisz "help" by uzyskać pomoc. test=#
Także pg_hba.conf już rozpracowane. teraz czas na resztę. xD
Ostatnio edytowany przez Jacekalex (2014-07-20 21:52:49)
Offline
Znalazłem ciekawy tutek dotyczący bezpieczeństwa Postgresa,
który przewiduje usunięcie wszystkich uprawnień z roli PUBLIC.
http://www.mad-hacking.net/documentation/linux/applications/postgres/database-permissions.xml
I jeszcze ciekawszy artykulik:
http://www.ibm.com/developerworks/library/os-postgresecurity/
Sam się zastanawiam, czy nie spróbować całkowicie usunąć domyślnej roli PUBLIC (o ile to wykonalne), i ciekaw jestem, czy to oznacza całkowite zniszczenie Postresa, czy tylko jego mocniejsze zabezpieczenie.
Pomysł wziął się jak zwykle z Mysqla, gdzie pacjent domyślnie nie ma prawa sprawdzać uprawnień innych pacjentów, a tym bardziej zaglądać do do listy nie swoich baz i tabel.
Czyli coś w tym guście:
mysql -u ejabberd -phaselko MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | ejabberd | | ejabberdold | +--------------------+ 3 rows in set (0.02 sec) MariaDB [(none)]>
Pozdro
Ostatnio edytowany przez Jacekalex (2014-07-21 01:57:37)
Offline
Co do zmiany ownera to:
http://www.postgresql.org/docs/9.2/static/sql-reassign-owned.html
BARDZO przydatna komenda.
Offline
Już sobie z tym poradziłem, ale dzięki ;)
Po prostu wystarczy, żeby to pacjent robił tabele, a nie inny user, wtedy uprawnienia są prawidłowe OTB.
Raczej interesuje mnie zabezpieczanie Postgresa, żeby pod względem uprawnień, kontroli dostępu i ujawniania pacjentom info o innych pacjentach i ich uprawnieniach, podciągnąć go do poziomu Mysqla (cokolwiek miałoby to znaczyć). :D
Ostatnio edytowany przez Jacekalex (2014-08-12 08:12:29)
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00015 | SET CHARSET latin2 |
0.00008 | SET NAMES latin2 |
0.00118 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.117.166.52' WHERE u.id=1 |
0.00086 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.166.52', 1732824434) |
0.00054 | SELECT * FROM punbb_online WHERE logged<1732824134 |
0.00050 | SELECT topic_id FROM punbb_posts WHERE id=271805 |
0.00005 | SELECT id FROM punbb_posts WHERE topic_id=26151 ORDER BY posted |
0.00057 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=26151 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00121 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=26151 ORDER BY p.id LIMIT 0,25 |
0.00092 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26151 |
Total query time: 0.00613 s |