|
security
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
How to control the number of installed front end files (*. mde)I am developing a database in Access 2003 that will be put in a server. In that server I will install the data (back end) and the *. mde file (front end), later I will install in more 4 computers the front end (*. mde file). How I can control the number of users that accede to the database, because the supply of the database includes 5 licenses? What I intend to do is to impede the installation of more front ends files in other computers. I call your attention for the fact, that I created a users table and users groups table in the database. I am not using the users and users groups facilities of the access. If it was possible to have a global variable to be increased whenever an users acceded to the database had the solution for the problem, only that I think each computer with his *. Mde file, have there own global variables values I thank, at once your help. With the best regards, José Leal You can count the Front-End PC's by getting and storing the Hard Drive volume.
Precisely how you implement that (and secure the information) is up to you. Of course, this wont work with Terminal Server, which doesn't really have separate front-end PC's. The Volume ID is randomly generated and not necessarily unique. However the chances of duplication are infinitesimal. Another way is to record the network card MAC address (or Permanent Node Name), which I don't have code for but here's a post which does http://groups.google.com/group/comp.databases.ms-access/browse_thread/thread/82b58d5ccad5b4c0/2c6b3e766b7f0edb?q=network+adapter&rnum=1#2c6b3e766b7f0edb For hard disk volume (which works well for me except TS): ----- Public Function GetVol() As String Dim l As Long Dim RootPathName As String Dim VolumeNameBuffer As String * 255 Dim VolumeNameSize As Long Dim VolumeSerialNumber As Long Dim MaximumComponentLength As Long Dim FileSystemFlags As Long Dim FileSystemNameBuffer As String Dim FileSystemNameSize As Long RootPathName = "C:\" VolumeNameBuffer = Space(255) VolumeNameSize = 255 VolumeSerialNumber = 0 l = GetVolumeInformation(RootPathName, VolumeNameBuffer, VolumeNameSize, VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, FileSystemNameBuffer, FileSystemNameSize) If l = 0 Then GetVol = "0" Else GetVol = Hex(VolumeSerialNumber) End If End Function ----- Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long ----- Good day,Chris:
I am going to try it. Thanks. Best regards, José Leal Show quoteHide quote "Chris Mills" wrote: > You can count the Front-End PC's by getting and storing the Hard Drive volume. > Precisely how you implement that (and secure the information) is up to you. > > Of course, this wont work with Terminal Server, which doesn't really have > separate front-end PC's. > > The Volume ID is randomly generated and not necessarily unique. However the > chances of duplication are infinitesimal. > > Another way is to record the network card MAC address (or Permanent Node > Name), which I don't have code for but here's a post which does > http://groups.google.com/group/comp.databases.ms-access/browse_thread/thread/82b58d5ccad5b4c0/2c6b3e766b7f0edb?q=network+adapter&rnum=1#2c6b3e766b7f0edb > > For hard disk volume (which works well for me except TS): > ----- > Public Function GetVol() As String > Dim l As Long > Dim RootPathName As String > Dim VolumeNameBuffer As String * 255 > Dim VolumeNameSize As Long > Dim VolumeSerialNumber As Long > Dim MaximumComponentLength As Long > Dim FileSystemFlags As Long > Dim FileSystemNameBuffer As String > Dim FileSystemNameSize As Long > > RootPathName = "C:\" > VolumeNameBuffer = Space(255) > VolumeNameSize = 255 > VolumeSerialNumber = 0 > l = GetVolumeInformation(RootPathName, VolumeNameBuffer, VolumeNameSize, > VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, > FileSystemNameBuffer, FileSystemNameSize) > If l = 0 Then > GetVol = "0" > Else > GetVol = Hex(VolumeSerialNumber) > End If > > End Function > ----- > Declare Function GetVolumeInformation Lib "kernel32" Alias > "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal > lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, > lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, > lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal > nFileSystemNameSize As Long) As Long > ----- > > >
Security change takes effect only locally, not on server
TC - New security model Share Workgroup Information File Access Security When called from .NET You do not have Exclusive acces to the database at this time????? Relink tables in a secured DB - create table permission required? Securing the Back-End Export or Import Objects from One Secured Database to Another Locked out of all Access DBs Re: Overall Security??? |
|||||||||||||||||||||||