Your client can place locking records in your database to point out that a user has loged in (like semaphore locks). At closure of the client the record must be removed. In our system we have a special server application that checks every minute whether a lock is still valid, and otherwise removes it. Upon a crash of a client you wont have a lockout for long. To be able to see who has accessed the data, you could make an audit system: Log which user signed in from which computer, what he has done etc. This can be done by various methods: - the client app writing extra records - triggers in the database - the higher versions of SQLServer have tables that store information about performance of performed queries etc. Maybe those are helpfull also. - ...
Regards ... OttO