The following example grants a user or group permissions on a single table or query in a database. It sets the UserName property of the document to the user or group for whom you want to change permissions. Then the code sets the permissions by modifying the Permissions property of the Document object. Note that instead of explicitly setting the Permissions property to dbSecRetrieveData, the Or operator is used to add the permission to any existing permissions. This ensures that this code does not remove other permissions that the user has already been assigned. In this example, strDbPath
is the path to the database, strUser
is the name of a user or group, and strDocument
is the name of the Document object.
Sub GrantReadPerms(strDbPath As String, strUser As String, strDocument As String) Dim dbs As Database Dim doc As Document Set dbs = OpenDatabase(strDbPath) Set doc = dbs.Containers("Tables").Documents(strDocument) With doc ' Specify user or group name. .UserName = strUser ' Add read permissions to existing permissions. .Permissions = doc.Permissions Or dbSecRetrieveData End With End Sub