Click here to get back home

DBD::ODBC as "middleware" between Crystal Reports and MySQL

 HomeNewsGroups | Search | About
 comp.lang.perl.misc    Post an article   get this group's latest topics as an RSS feed add this group's latest topics to your My MSN content add this group's latest topics to your My Yahoo content
Subject Author Date
DBD::ODBC as "middleware" between Crystal Reports and MySQL Dave Hammond 03-18-2008
Posted by Dave Hammond on March 18, 2008, 2:41 pm
Please log in for more thread options
For those who are thinking "just install the MySQL ODBC driver and
point Crystal to it", bear with me...

Most users connect to our MySQL databases via web applications. The
web apps and databases live on hosts which are in a "DMZ" segment of
our network, thus protecting our LAN from any direct Internet access.
However, in addition to the web apps, some power users use Crystal
Reports to directly access the databases, in exactly the manner you
might have assumed -- via the MySQL ODBC driver.

We have been tasked with moving the MySQL databases off the DMZ hosts
and into the LAN. This won't cause problems for the web apps, however
the Crystal users will be S.O.L. unless we can install some kind of
middleware app which lives in the DMZ and shuttles data between
Crystal and the MySQL databases.

I was thinking that we might be able to use DBD::ODBC for such an
app. Ideally, Crystal would connect to the middleware app via
DBD::ODBC, the app would validate and forward the SQL query to the
MySQL server, and then shuttle the results back to Crystal.

Does anyone have any comments on if something like this would be do-
able with DBD::ODBC? Or, maybe I'm trying to reinvent the wheel and
there is something already existing which does what we need?

Thanks in advance!

-Dave H.

Posted by Ben Morrow on March 18, 2008, 3:52 pm
Please log in for more thread options

> For those who are thinking "just install the MySQL ODBC driver and
> point Crystal to it", bear with me...
>
> Most users connect to our MySQL databases via web applications. The
> web apps and databases live on hosts which are in a "DMZ" segment of
> our network, thus protecting our LAN from any direct Internet access.
> However, in addition to the web apps, some power users use Crystal
> Reports to directly access the databases, in exactly the manner you
> might have assumed -- via the MySQL ODBC driver.
>
> We have been tasked with moving the MySQL databases off the DMZ hosts
> and into the LAN. This won't cause problems for the web apps, however
> the Crystal users will be S.O.L. unless we can install some kind of
> middleware app which lives in the DMZ and shuttles data between
> Crystal and the MySQL databases.
>
> I was thinking that we might be able to use DBD::ODBC for such an
> app. Ideally, Crystal would connect to the middleware app via
> DBD::ODBC, the app would validate and forward the SQL query to the
> MySQL server, and then shuttle the results back to Crystal.
>
> Does anyone have any comments on if something like this would be do-
> able with DBD::ODBC? Or, maybe I'm trying to reinvent the wheel and
> there is something already existing which does what we need?

No, you've got your thinking backwards. DBD::ODBC is an ODBC *client*:
that is, it runs at the application end of the connection. What you want
is an ODBC-capable *server*: something that runs at the database end, so
Crystal can talk to it. DBIx::MyServer allows you to create a fake MySQL
server that forwards all requests to another database; in combination
with the MySQL ODBC driver at the Crystal end, this may do what you
need.

Ben


Posted by Dave Hammond on March 19, 2008, 8:42 pm
Please log in for more thread options
>
>
>
> > For those who are thinking "just install the MySQL ODBC driver and
> > point Crystal to it", bear with me...
>
> > Most users connect to our MySQL databases via web applications. The
> > web apps and databases live on hosts which are in a "DMZ" segment of
> > our network, thus protecting our LAN from any direct Internet access.
> > However, in addition to the web apps, some power users useCrystal> Reportsto
directly access the databases, in exactly the manner you
> > might have assumed -- via the MySQL ODBC driver.
>
> > We have been tasked with moving the MySQL databases off the DMZ hosts
> > and into the LAN. This won't cause problems for the web apps, however
> > the Crystal users will be S.O.L. unless we can install some kind of
> > middleware app which lives in the DMZ and shuttles data between
> > Crystal and the MySQL databases.
>
> > I was thinking that we might be able to use DBD::ODBC for such an
> > app. Ideally, Crystal would connect to the middleware app via
> > DBD::ODBC, the app would validate and forward the SQL query to the
> > MySQL server, and then shuttle the results back to Crystal.
>
> > Does anyone have any comments on if something like this would be do-
> > able with DBD::ODBC? Or, maybe I'm trying to reinvent the wheel and
> > there is something already existing which does what we need?
>
> No, you've got your thinking backwards. DBD::ODBC is an ODBC *client*:
> that is, it runs at the application end of the connection. What you want
> is an ODBC-capable *server*: something that runs at the database end, so
> Crystal can talk to it. DBIx::MyServer allows you to create a fake MySQL
> server that forwards all requests to another database; in combination
> with the MySQL ODBC driver at the Crystal end, this may do what you
> need.
>
> Ben

Well, only as regards using DBD::ODBC ... the project concept itself
seems reasonable enough :-) That aside, your pointer to
DBIx::MyServer looks to be just what I need. Thanks very much.

-Dave H.

Posted by Thrill5 on March 21, 2008, 12:39 am
Please log in for more thread options

>>
>>
>>
>> > For those who are thinking "just install the MySQL ODBC driver and
>> > point Crystal to it", bear with me...
>>
>> > Most users connect to our MySQL databases via web applications. The
>> > web apps and databases live on hosts which are in a "DMZ" segment of
>> > our network, thus protecting our LAN from any direct Internet access.
>> > However, in addition to the web apps, some power users useCrystal>
>> > Reportsto directly access the databases, in exactly the manner you
>> > might have assumed -- via the MySQL ODBC driver.
>>
>> > We have been tasked with moving the MySQL databases off the DMZ hosts
>> > and into the LAN. This won't cause problems for the web apps, however
>> > the Crystal users will be S.O.L. unless we can install some kind of
>> > middleware app which lives in the DMZ and shuttles data between
>> > Crystal and the MySQL databases.
>>
>> > I was thinking that we might be able to use DBD::ODBC for such an
>> > app. Ideally, Crystal would connect to the middleware app via
>> > DBD::ODBC, the app would validate and forward the SQL query to the
>> > MySQL server, and then shuttle the results back to Crystal.
>>
>> > Does anyone have any comments on if something like this would be do-
>> > able with DBD::ODBC? Or, maybe I'm trying to reinvent the wheel and
>> > there is something already existing which does what we need?
>>
>> No, you've got your thinking backwards. DBD::ODBC is an ODBC *client*:
>> that is, it runs at the application end of the connection. What you want
>> is an ODBC-capable *server*: something that runs at the database end, so
>> Crystal can talk to it. DBIx::MyServer allows you to create a fake MySQL
>> server that forwards all requests to another database; in combination
>> with the MySQL ODBC driver at the Crystal end, this may do what you
>> need.
>>
>> Ben
>
> Well, only as regards using DBD::ODBC ... the project concept itself
> seems reasonable enough :-) That aside, your pointer to
> DBIx::MyServer looks to be just what I need. Thanks very much.
>
> -Dave H.

While this may solve the problem of allowing clients direct access to the
database, you are exposing your internal network. Validating the SQL
queries is far more complex than you can imagine. I would not try to build
this type of thing myself because there are security vendors that do this
type of thing. The one vendor that I am aware of that does have a product
that does this is Citrix, but I'm sure there are others.




Similar ThreadsPosted
Crystal Concepts offering PHP-MYSQL & JAVA/J2EE April 28, 2007, 2:13 am
Catalog() in Win32::ODBC for MySQL August 27, 2006, 1:57 am
getting DBI and ODBC to work with PERL and MYSQL data source March 22, 2007, 12:07 am
FAQ 2.17: Where do I send bug reports? October 28, 2004, 11:03 am
FAQ 2.17 Where do I send bug reports? January 30, 2005, 6:03 pm
FAQ 2.17 Where do I send bug reports? April 21, 2005, 11:03 pm
FAQ 2.17 Where do I send bug reports? July 7, 2005, 10:03 am
FAQ 2.17 Where do I send bug reports? August 26, 2005, 4:03 am
FAQ 2.17 Where do I send bug reports? November 11, 2005, 5:03 am
FAQ 2.16 Where do I send bug reports? March 15, 2006, 3:03 pm

Our other projects:

Art Dolls, Fairies and Mermaids - Sunnyfaces.net

Roy's Linux, Programming and Search Engines messages

1-Script XML SitemapXML Sitemap