1

Temat: uprawnienia użytkownika w zależności od adresu IP

Czy jest jakiś sposób na uzależnienie praw jednego użytkownika w zależności od adresu IP z jakiego przychodzi połączenie. Mam oprogramowanie, które łączy się z bazą danych tylko z wykorzystaniem jednego użytkownika. Dla połączeń zewnątrz chciałbym żeby ten użytkownik miał inne prawa np. brak INSERT

Dziękuje z góry za wskazówki

Marcin

2

Odp: uprawnienia użytkownika w zależności od adresu IP

Nie ma. Prawa są nadawane jedynie na podstawie nazwy roli (użytkownika bądź grupy).

3

Odp: uprawnienia użytkownika w zależności od adresu IP

Takiego systemowego sposobu nie ma ale mozna wykonać trigger albo funkcje dodajaca rekordy która sprawdzi IP komputera z którego sie loguje uzytkownik pod warunkiem ze nie robi tego poprzez serwer www bo wtedy bedzie namierzany adres IP serwera www a nie klienta

mozna wykorzystac ponizsze funkje systemowe pojazujace informacje o otwartych sesjach

select d.*,(select datname from pg_database where oid=d.id_db) as to_db
from
(select *
,pg_get_userbyid(pg_stat_get_backend_userid(pg_stat_get_backend_idset)) as user
,pg_stat_get_backend_dbid(pg_stat_get_backend_idset) as id_db
,pg_stat_get_backend_client_addr(pg_stat_get_backend_idset) as client_addr
,pg_stat_get_backend_client_port(pg_stat_get_backend_idset) as client_port
,pg_stat_get_backend_start(pg_stat_get_backend_idset) as start_session
--select pg_stat_get_backend_client_addr(pg_stat_get_backend_idset) as client_addr
--,pg_stat_get_backend_client_port(pg_stat_get_backend_idset) as client_port
from pg_stat_get_backend_idset()) d

4

Odp: uprawnienia użytkownika w zależności od adresu IP

Tylko trzeba pamiętać, że jeśli taka funkcja będzie wykonywana przed każdą operacją to wydajność bazy znacząco zmaleje.

Ostatnio edytowany przez rski (2009-08-08 22:03:29)