Thread: Protecting application table structures and data

Protecting application table structures and data

From
David Pratt
Date:
Hi. I am creating a desktop app and am interested in using postgres. I
started this app with sqlite3 which is nice but not multi-threaded so I
have run into its limitations.

I want to install postgres on the users machine as part of the set up
but want the application, if possible, to be the db admin for the
installed pg server. Is this possible?

I am hoping the application can be admin and create the tables and give
the machine's user appropriate access without providing direct access to
admin functions.

Alternatively, is there a way to protect the data structures and data
through encryption to secure the structures and data in a way that
cannot be read by a human? Many thanks.

Regards,
David

Re: Protecting application table structures and data

From
"Jim C. Nasby"
Date:
On Thu, Dec 15, 2005 at 05:01:47PM -0400, David Pratt wrote:
> Hi. I am creating a desktop app and am interested in using postgres. I
> started this app with sqlite3 which is nice but not multi-threaded so I
> have run into its limitations.
>
> I want to install postgres on the users machine as part of the set up
> but want the application, if possible, to be the db admin for the
> installed pg server. Is this possible?
>
> I am hoping the application can be admin and create the tables and give
> the machine's user appropriate access without providing direct access to
> admin functions.

You can do this, but remember that anyone who has access to the account
postgresql is running under is going to be able to do pretty much
anything they want. And anyone with administrative access to the machine
will be able to get access to that account.

> Alternatively, is there a way to protect the data structures and data
> through encryption to secure the structures and data in a way that
> cannot be read by a human? Many thanks.

No, there isn't. In fact, I think only Oracle has that capability,
though I could be mistaken.
--
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461

Re: Protecting application table structures and data

From
David Pratt
Date:
Hi Jim. Many thanks for your reply. I guess this is not so great news. I
am sort of at a loss as to what direction to take.  I need a db
connection on a couple of threads minimum in my app but also need to
ensure that the information is secure.

Regards
David

Jim C. Nasby wrote:
> On Thu, Dec 15, 2005 at 05:01:47PM -0400, David Pratt wrote:
>
>>Hi. I am creating a desktop app and am interested in using postgres. I
>>started this app with sqlite3 which is nice but not multi-threaded so I
>>have run into its limitations.
>>
>>I want to install postgres on the users machine as part of the set up
>>but want the application, if possible, to be the db admin for the
>>installed pg server. Is this possible?
>>
>>I am hoping the application can be admin and create the tables and give
>>the machine's user appropriate access without providing direct access to
>>admin functions.
>
>
> You can do this, but remember that anyone who has access to the account
> postgresql is running under is going to be able to do pretty much
> anything they want. And anyone with administrative access to the machine
> will be able to get access to that account.
>
>
>>Alternatively, is there a way to protect the data structures and data
>>through encryption to secure the structures and data in a way that
>>cannot be read by a human? Many thanks.
>
>
> No, there isn't. In fact, I think only Oracle has that capability,
> though I could be mistaken.

Re: Protecting application table structures and data

From
Scott Marlowe
Date:
On Thu, 2005-12-15 at 16:23, David Pratt wrote:
> Hi Jim. Many thanks for your reply. I guess this is not so great news. I
> am sort of at a loss as to what direction to take.  I need a db
> connection on a couple of threads minimum in my app but also need to
> ensure that the information is secure.

Let's face facts. The second you hand the user a CDROM with your
application and encoded data on it, and the application has a way to
access it, it's only a matter of time before the user, by hacking the
application, can get access to it.

There is one, and only one, real solution.  Host the data yourself and
require the user to connect remotely to you.

For instances of attempts to make things secure on remote systems, see
the recent Sony - F4I - root kit debacle.