Re: Licensing a database app
Date: 1998/06/28
Message-ID: <Noml1.2019$606.10127158_at_news.rdc1.ab.wave.home.com>#1/1
Sundial Services wrote in message <35917E42.57FA_at_primenet.com>...
>Brian wrote:
>>
>> We are developing a database application that tracks vehicles. We need a
>> method to limit the number of vehicles the application will track.
>>
>> The application is licensed on a per vehicle basis. If a customer wants
to
>> track 1000 vehicles, then the customer must buy a 1000 vehicles license
and
>> the application must then enforce that limit.
>>
>> The application uses an ODBC data source (SQL Server or Oracle) and VB
COM
>> components to access the data. The database is installed on the
customer's
>> server. *** Therefore the customer has full control over the database
>> content and database structure. *** Any solution must take into account
the
>> customer can change any field of any table and modify the structure of
the
>> database in any way.
>
>
>I'm trying to imagine any system that will permit the user to "modify
>the database structure in any way" and survive the effort.
>
>It seems to me that almost any license-control package would provide you
>with the means of storing the record-limit, which your application could
>then check when processing various query result-sets. All you would
>need to do is to program in the appropriate controls. Or, perhaps you
>could have it do a 'SELECT COUNT(*) FROM' query at some appropriate time
>to see if the table contains more records than you are willing to
>accept.
The system does not actually permit the user to modify the database (contents or structure).
This application will be installed at larger companies that have a database server. A DBA at such a company will never allow an application to create tables wherever it pleases. Typically, the DBA will create a restricted area on the database and grant an application access to this area. The result is: any tables our application creates can be modified by the DBA.
So, it's not that we permit our customers to modify our database. Simply put, we cannot prevent a customer from doing so.
Using the SELECT query you suggested we can find the number of vehicles in our system. The problem we have is how do we know the number of vehicles that the particular customer is allowed? This maximum number will be different for each customer. If we store it in the database, the DBA can simply open up the table and change this number.
So far we have a serveral solutions:
- Store the number in the database, but encrypt and/or digitally sign the
number first.
- Hardcode the number in the code. Since there will probably be under 25
customers, recompiling a component for each customer is not unrealistic.
This was suggested by Jason Short.
- Use a hardware dongle also suggested by Jason Short. We feel most
companies will not allow any hardware to be installed on their corporate
servers.
- Use the Microsoft Licensing API. This was just suggested by huh. I
haven't had a chance the seriously look at the licensing API. Any
suggestions/concerns/comments on the LSAPI? Does anyone actually use it?
I hope I made our situation a little clearer. Thanks for the response, Brian Received on Sun Jun 28 1998 - 00:00:00 CEST