I was thinking of something similar.
With every installation I'd have that system's hardware ID and the provided serial number registered in the database, so we'll know every time the application is installed. In any case, we won't provide the customer with the information about the database (its address, username, password), and since that database is specifically personalized for that customer, even if they manage to run it without activation, they won't be able to use it for other purposes. Even if they find a way to change the database information to their own by reverse engineering the code, they won't know the structure of the tables.