I agree with Jason that you can't really prevent them from getting to the
schema, unless you become an Application Service Provider and host the
application on your own hardware at your business, and they connect over a
network to it. Of course, then you would want to charge them a subscription for
continued use of the service, and be prepared to assume responsibility for
backups, uptime, etc.
One thing you could do just to "tag" it would be to add a prefix or suffix to
all the tables. Say you work for "A Better Company, Inc.", then you might name
all your tables things like
abc_customer and abc_order, etc. The only thing that would help with is if you
find someone else running a copy, it may be easier to prove that it's your
schema. Of course they could change the names, but they would run the risk of
breaking functionality if they don't do it right, plus you can hardcode the
names in your front-end application. If you can compile the front-end such that
you only provide them with a binary executable, it will be that much harder to
change the names. And you may have better luck using other copy-protection
mechanisms with the front end.
I wish you well,
Wes Sheldahl
Jason Earl <jason.earl%simplot.com@interlock.lexmark.com> on 02/21/2002 04:42:58
PM
To: mlq%hotmail.com@interlock.lexmark.com (Michael)
cc: pgsql-general%postgresql.org@interlock.lexmark.com (bcc: Wesley
Sheldahl/Lex/Lexmark)
Subject: Re: [GENERAL] Protection of intellectual property (Schema & SQL code)
mlq@hotmail.com (Michael) writes:
> I want to develop an application using a database server. But I am
> concerned that installing it at client's sites will mean that I am
> potentially exposing my intellectual property to theft. (I'm in Asia
> where this sort of thing is rife).
In other words you want to create a black box. Information goes in,
but it only comes out if you get paid. Such a thing is possible, but
only if the customer doesn't get to poke at the box. If they control
the hardware, then you are sunk.