Temat: jak sprqawdzić status logowania użytkowników.
Witam,
Chciał bym się dowiedzieć; w jaki sposób wyselektować sobie użytkowników danej bazy którzy mają założone konto LOGIN; ale nigdy się nie logowali do bazy ?
Pozdrawiam
PostgreSQL to najbardziej zaawansowany system relacyjnych baz danych Open Source.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Witam,
Chciał bym się dowiedzieć; w jaki sposób wyselektować sobie użytkowników danej bazy którzy mają założone konto LOGIN; ale nigdy się nie logowali do bazy ?
Pozdrawiam
Z tego co wiem nie ma takiej możliwości, można wyświetlić użytkowników, mających na dzień wykonania skryptu dostęp do konkretnej bazy danych ale nic więcej.
Aby zrealizować to co chcesz musiał byś zbierać w logach informacje o zalogowaniu użytkownika i czytać taki log raz na dobę, a w bazie oznakowywać sobie użytkownika jako zalogowanego.
Można też utworzyć sobie tabelą odnotowującą zdarzenia zalogowania, ale wtedy aplikacja, która zużytkowuje bazę musiała by do tej tabeli dokonywać insertów.
Kiedyś miałem podobny problem i chciałem wykorzystać triggery wyzwalane przy zdarzeniu np inserty ale nie udało mi się podpiąć do niczego bo nie ma takiej tabeli systemowej, która przechowywała by sesje użytkownika (sesje można wyświetlić)
Poniżej masz selecta, który wyświetla zalogowanych użytkowników
SELECT
d.datname AS "BAZA DANYCH"
,u.rolname AS "ZALOGOWANY UŻYTKOWNIK"
,pg_stat_get_backend_client_addr(s.backendid)::character varying AS "Z KOMPUTERA O IP"
,pg_stat_get_backend_start(s.backendid)::date as "Start Klienta"
,count(*) as ilosc_nawiazanych_polaczen
FROM pg_database d
, (SELECT pg_stat_get_backend_idset() AS backendid) s
, pg_authid u
WHERE pg_stat_get_backend_dbid(s.backendid) = d.oid
AND pg_stat_get_backend_userid(s.backendid) = u.oid
AND d.datname = current_database()
group by
d.datname
,u.rolname
,pg_stat_get_backend_client_addr(s.backendid)::character varying
,pg_stat_get_backend_start(s.backendid)::date
ORDER BY d.datname, u.rolname, pg_stat_get_backend_client_addr(s.backendid)::character varying;
Posty [ 2 ]
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
[ Wygenerowano w 0.007 sekund, wykonano 10 zapytań ]