"bar.baz" is the proper way of doing this but was not handled properly in the syslog-ng code. I filed a bug report on this and the fix has been incorporated into 3.2 (https://bugzilla.balabit.com/show_bug.cgi?id=73 item number 2). So, you have 3 options 1) you can download the patch on that bug and manually build the fix into your code and build it yourself 2) add an alias so it knows which schema that table is in 3) wait for 3.2 Sent: Tuesday, July 27, 2010 12:28:03 PM From: John Kristoff <jtk@cymru.com> To: syslog-ng@lists.balabit.hu Subject: [syslog-ng] sql() and pgsql
Hello,
First thanks to Bazsi and co. for years of great work on syslog-ng. I've used it off and on for some time and have always found it to be well implemented and supported. I've experimented a bit with rsyslog since some distros have been making it their new default and found syslog-ng to be easier to work with and more reliable for my tasks.
I'm been playing around with v3.0.8 and the sql() / pgsql output driver to insert log data into a specific table on a specific schema. I couldn't figure out how to specify the schema and maybe its just not supoprted. For instance, if the following is defined:
database: foo schema: bar table: baz
but the PostgreSQL search path for the user doesn't include bar, then syslog-ng will attempt to create a table in the default schema (usually 'public'). I tried setting the table name to "bar.baz", but that just created a table named bar_baz in the default schema. I did a quick check in the source code and didn't see where this was occurring, maybe its a function of a third party library?
If schema support was available that would be nice. For posterity sake and maybe a FAQ, the work around is to alter the search_path for the user (e.g. ALTER ROLE user SET search_path = bar,public;).
On a related note, it might be nice to have an option to avoid creating a table if it does not already exist. If nothing else, this helps limit the permissions granted to the syslog-ng db user, which would be appreciated. Likewise, it might also be nice to have an option that can disable checking if the table exists (the "SELECT * FROM %s WHERE 0=1" query) to further lock down user permissions.
John ______________________________________________________________________________ Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng FAQ: http://www.campin.net/syslog-ng/faq.html