|
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.
|