none
Read-only permissions to Access 2007 database

    Question

  • There are other threads that address this issue but I can not make heads or tails out of them-they are too technical.  Can someone please help me with a simple explanation of the solution to giving users read-only access to an Access 2007 database.  I do not understand what "front end", "back end", is and I do not know SQL, etc. code.  I have searched and searched for a simple explanation of how to do this and can't believe that something so seemingly simple requires a computer science degree.  I be very grateful for a basic explanation of the steps to give certain people read-only access to a database.  Thank you.
    Tuesday, February 05, 2013 3:21 PM

Answers

  • Thank you Bill.   I am not trying to "break a read-only hold" though.  I am trying to provide read-only access to specific users.  The database is my database that I have created and have full access to.  Also, I do not have a wizard under the Trust Center. 

    My mistake! I didn't read you question as carefully as I should have. And, by "wizard", I really meant the dialog box.

    As ATGNWT mentioned, this is no longer an easy task because of the removal of User Level Security starting with Access 2007 file formats. You mentioned that you have very limited technical skills in Access so I suggest you just put the permissions on the server folder with the file containing the tables as read-only for the group of users that require this.

    Another approach would be to put the tables in SQL Server which has a much more secure environment and the ability to lock down data right to the column level of any table. Access was never meant for that kind of security.


    Bill Mosca
    www.thatlldoit.com
    http://tech.groups.yahoo.com/group/MS_Access_Professionals

    Tuesday, February 05, 2013 5:55 PM
  • Hi amg17

    It's actually very simple.

    But you have to know if you have only one Access database or if more than one is involved. This is what we are calling Frontend and Bakend. Minimal knowledge is possible in this area without a degree in computer sience.

    If for your application more than one Access database files are involved then probably the application is splitted in a Frontend and Backend part. Frontend is where the application is running and the backend is where the data is stored. The data from the backend is linked into the frontend. Both files are normally MDBs/MDEs or ACCDBs/ACCDEs. We call this a FE/BE split achitecture. If there is only one Access file involved then the application and the data are stored in the same file and we have a single file architecture.

    So much for your computer sience degree. Don't expect you will get a diploma for knowing this as you wont get one for daily brushing your theeths :-D

    Now what you have to do is simple:
    Just click all files that are involved in the application (ACCDB or ACCEE or MDB or MDE files) with the right mouse and in the property dialog set the file to read only and you are done.

    If this doesn't work for you, come back here with your application programmer and let him explain where the tables are. Maybe he uses another data source (like the SQL Server) as backend, but this is a different story and  in this case a degree in computer sience could be favorable.

    Henry

    "amg17" schrieb im Newsbeitrag news:07b0f063-59f2-4818-a9e6-d97a4223c33f@communitybridge.codeplex.com...

    There are other threads that address this issue but I can not make
    heads or tails out of them-they are too technical.  Can someone please
    help me with a simple explanation of the solution to giving users
    read-only access to an Access 2007 database.  I do not understand what
    "front end", "back end", is and I do not know SQL, etc. code.  I have
    searched and searched for a simple explanation of how to do this and
    can't believe that something so seemingly simple requires a computer
    science degree.  I be very grateful for a basic explanation of the
    steps to give certain people read-only access to a database.  Thank you.

    Wednesday, February 06, 2013 3:02 AM

All replies

  • Access (like all the newer versions of Office products) opens files as read only to "protect" you against the bad people out there. First make sure the file is in a trusted location. Click on the Office button>Access Options>Trust Center. Follow the wizard.

    Next, open the Windows Directory and check the properties for the file. Make sure it is not Read-Only.

    If that still doesn't break the Read-Only hold, save it using Save As. Be sure to save it to a trusted location.

    Lastly, if the file is on a read-only CD or DVD, using Save As is the only solution.


    Bill Mosca
    www.thatlldoit.com
    http://tech.groups.yahoo.com/group/MS_Access_Professionals

    Tuesday, February 05, 2013 3:51 PM
  • To my knowledge there is not a solution as 'simple' as you are hoping to get. The purpose of most databases is to make updates and to prevent that takes special actions. First, you should have the folder where the database resides protected to only allow access (whether read or update) to those users allowed to it. You cannot just apply read-only protection to the folder since Access by design requires full access to the folder even if you are just reading. Bear in mind that anyone can copy the database to another location that may not be protected.

    The solution I use to allow read-only access is to have a table of users within the database. When the database is opened, if the user is found in the table, updates are allowed and if not, I enforce read-only access by disallowing the update of any control on any form. This is a simple function called when every form is opened that locks all updatable controls. Yes, this is 'technical' and requires additional code to be added to every form. Maybe someone can suggest a simpler way that I am not aware of.

    Tuesday, February 05, 2013 4:51 PM
  • Thank you Bill.   I am not trying to "break a read-only hold" though.  I am trying to provide read-only access to specific users.  The database is my database that I have created and have full access to.  Also, I do not have a wizard under the Trust Center. 

    Tuesday, February 05, 2013 4:53 PM
  • Thank you Bill.   I am not trying to "break a read-only hold" though.  I am trying to provide read-only access to specific users.  The database is my database that I have created and have full access to.  Also, I do not have a wizard under the Trust Center. 

    My mistake! I didn't read you question as carefully as I should have. And, by "wizard", I really meant the dialog box.

    As ATGNWT mentioned, this is no longer an easy task because of the removal of User Level Security starting with Access 2007 file formats. You mentioned that you have very limited technical skills in Access so I suggest you just put the permissions on the server folder with the file containing the tables as read-only for the group of users that require this.

    Another approach would be to put the tables in SQL Server which has a much more secure environment and the ability to lock down data right to the column level of any table. Access was never meant for that kind of security.


    Bill Mosca
    www.thatlldoit.com
    http://tech.groups.yahoo.com/group/MS_Access_Professionals

    Tuesday, February 05, 2013 5:55 PM
  • I am going to guess two things either you simply want to Right click on the File and set it to Read Only or you want the following trying a little code you could put buttons on your Form to change from mode to mode like this;

    'Read Only Code'
    Private Sub cmdReadRecord_Click()
        If Me.DataEntry Then Me.DataEntry = False
        Me.AllowEdits = False
        Me.AllowAdditions = False
        Me.AllowDeletions = False
        End If
    End Sub
    'Add New Record Only Code'
    Private Sub cmdAddNewRecord_Click()
        Me.DataEntry = True
        Me.AllowEdits = True
        Me.AllowAdditions = True
        Me.AllowDeletions = True
        End If
    End Sub
    'Edit Existing Record Only Code'
    Private Sub cmdEditMode_Click()
        If Me.DataEntry Then Me.DataEntry = False
        Me.AllowEdits = True
        Me.AllowAdditions = False
        Me.AllowDeletions = False
        End If
    End Sub

    You could just copy and paste this code into buttons on the Form.

    HTH


    Chris Ward

    Tuesday, February 05, 2013 10:56 PM
  • Hi amg17

    It's actually very simple.

    But you have to know if you have only one Access database or if more than one is involved. This is what we are calling Frontend and Bakend. Minimal knowledge is possible in this area without a degree in computer sience.

    If for your application more than one Access database files are involved then probably the application is splitted in a Frontend and Backend part. Frontend is where the application is running and the backend is where the data is stored. The data from the backend is linked into the frontend. Both files are normally MDBs/MDEs or ACCDBs/ACCDEs. We call this a FE/BE split achitecture. If there is only one Access file involved then the application and the data are stored in the same file and we have a single file architecture.

    So much for your computer sience degree. Don't expect you will get a diploma for knowing this as you wont get one for daily brushing your theeths :-D

    Now what you have to do is simple:
    Just click all files that are involved in the application (ACCDB or ACCEE or MDB or MDE files) with the right mouse and in the property dialog set the file to read only and you are done.

    If this doesn't work for you, come back here with your application programmer and let him explain where the tables are. Maybe he uses another data source (like the SQL Server) as backend, but this is a different story and  in this case a degree in computer sience could be favorable.

    Henry

    "amg17" schrieb im Newsbeitrag news:07b0f063-59f2-4818-a9e6-d97a4223c33f@communitybridge.codeplex.com...

    There are other threads that address this issue but I can not make
    heads or tails out of them-they are too technical.  Can someone please
    help me with a simple explanation of the solution to giving users
    read-only access to an Access 2007 database.  I do not understand what
    "front end", "back end", is and I do not know SQL, etc. code.  I have
    searched and searched for a simple explanation of how to do this and
    can't believe that something so seemingly simple requires a computer
    science degree.  I be very grateful for a basic explanation of the
    steps to give certain people read-only access to a database.  Thank you.

    Wednesday, February 06, 2013 3:02 AM
  • You cannot just apply read-only protection to the folder since Access by design requires full access to the folder even if you are just reading.

    That's not true. Making the folder read-only to a specific Active Directory group prevents Access from creating a locking file when anyone in that group opens the file. Without a locking file data cannot be changed. It forces the database to be opened as Read-Only.

    But you are absolutely right that someone with read-only permissions can copy the file and move it to another folder. Unfortunately, the same can be said about you method of locking all the controls on the forms. All a user has to do is get access to the tables themselves or even linked tables to change the data. There is no way to stop that even if the Bypass key is disallowed.


    Bill Mosca
    www.thatlldoit.com
    http://tech.groups.yahoo.com/group/MS_Access_Professionals

    Wednesday, February 06, 2013 4:40 PM