ProFTPd i mod_sql
=?iso-8859-2?q?Bart=B3omiej_Syryjczyk?= - 22-07-2006 04:32
ProFTPd i mod_sql
Witam, Pytanie nie jest OT - dotyczy zapytania, które ProFTPd formatuje sobie przy sprawdzaniu członków grupy. Tabele wyglądają tak (najważniejsze kolumny): servers: server groups: id, idServer, gid, groupname users: id, idServer, user groups_members: idGroup, idUser Ta ostatnia pokazuje członków grupy. ProFTPd z mod_sql ma dwie dyrektywy odpowiadające za wybór członków grupy: SQLGroupInfo i SQLGroupWhereClause. Wyglądają u mnie tak: --- SQLGroupInfo groups,servers,groups_members,users groups.groupname groups.gid GROUP_CONCAT(users.user) SQLGroupWhereClause "groups.idServer = servers.id AND groups.id = groups_members.idGroup AND servers.server = 'server.domain.tld' GROUP BY groups.gid" --- Wszystko byłoby fajnie, ale ProFTPd skleja sobie to w ten sposób, że moje WHERE wstawia w podwójny nawias, razem z GROUP BY, co objawia się błędem składni: --- SELECT groups.groupname FROM groups,servers,groups_members,users WHERE (groups.gid = 65534) and ((groups.idServer = servers.id AND groups.id = groups_members.idGroup AND servers.server = 'server.domain.tld' GROUP BY groups.gid)) LIMIT 1 --- Liczyłem, że jak GROUP BY będzie w nawiasach okrągłych, to zostanie zignorowane, ale nic z tego. Jest jakaś możliwość obejścia tego? Nie chciałbym zmieniać struktury tabel, bo inne oprogramowanie i inne serwery z niego korzystają. Oczywiście zrobię sobie jakiś widok, ale chcę wiedzieć czy można inaczej.
guzik
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 22-07-2006 04:33
Bartłomiej Syryjczyk wrote: > --- > SQLGroupInfo groups,servers,groups_members,users groups.groupname > groups.gid GROUP_CONCAT(users.user) > SQLGroupWhereClause "groups.idServer = servers.id AND groups.id = > groups_members.idGroup AND servers.server = 'server.domain.tld' GROUP > BY groups.gid" > --- > Wszystko byłoby fajnie, ale ProFTPd skleja sobie to w ten sposób, że > moje WHERE wstawia w podwójny nawias, razem z GROUP BY, co objawia > się błędem składni: > --- > SELECT groups.groupname FROM groups,servers,groups_members,users WHERE > (groups.gid = 65534) and ((groups.idServer = servers.id AND groups.id = > groups_members.idGroup AND servers.server = 'server.domain.tld' GROUP > BY groups.gid)) LIMIT 1 > --- > Liczyłem, że jak GROUP BY będzie w nawiasach okrągłych, to > zostanie zignorowane, ale nic z tego. Jest jakaś możliwość > obejścia tego? Nie chciałbym zmieniać struktury tabel, bo inne > oprogramowanie i inne serwery z niego korzystają. > Oczywiście zrobię sobie jakiś widok, ale chcę wiedzieć czy można > inaczej.
No można wykorzystać sposoby używane przy SQL Injection. :) SQLGroupWhereClause "groups.idServer = servers.id AND groups.id = groups_members.idGroup AND servers.server = 'server.domain.tld')) GROUP BY ((groups.gid"
Ale oczywiście przy założeniu, że zawsze wstawia tą samą ilość nawiasów. No i zdecydowanie nie jest to eleganckie rozwiązanie. Widoki byłyby dużo lepsze.
-- P.M.
=?iso-8859-2?q?Bart=B3omiej_Syryjczyk?= - 22-07-2006 04:33
Paweł Matejski napisał(a): > No można wykorzystać sposoby używane przy SQL Injection. :) > SQLGroupWhereClause "groups.idServer = servers.id AND groups.id = > groups_members.idGroup AND servers.server = 'server.domain.tld')) GROUP > BY ((groups.gid" > > Ale oczywiście przy założeniu, że zawsze wstawia tą samą ilość nawiasów. > No i zdecydowanie nie jest to eleganckie rozwiązanie. Widoki byłyby dużo > lepsze. Zrobiłem widok i oczywiście jest to 'ładniejsze', ale chodziło mi o te nawiasy. Wstawiałem całe GROUP BY zamiast samej kolumny. Dziękuję za pomoc.
guzik
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plnatalia97.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|