I have used the following two Routines for:
1. To remove all permissions from the 'Users' Group Account.
2. To set 'Open/Run' permissions to all Containers/Documents.
Check the code for Constants.
Code:
Option Compare Database
Option Explicit
' Security Setup Programs
'Dim grpName As String
'Dim dbName As String
Const AdmFullAccess = 1048575
Const AdmMSysDB = 393230
Const AdmMSysAO = 393300
Const AdmMsysModules2 = 244
Const AdmMSysQ = 393236
Const AdmMSysRel = 917524
'Const AdmSumInfoUserDef = 65536
Const dbFull = 14
Const objsFull = 852478
Const dbFullNo = 393216
Const objsFullNo = 196097
Public Function CDefUsers_Grp(ByVal DatabaseName As String) As Integer
Dim wsp As Workspace, cdb As Database, ctr As Container, doc As Document
Dim GroupName As String, ctrName As String, docName As String
Dim L4 As String
'Remove All Permissions on Containers & documents
'of Users Group
On Error GoTo CDefUsers_Grp_Err
Set wsp = DBEngine.Workspaces(0)
Set cdb = wsp.OpenDatabase(DatabaseName)
wsp.Groups.Refresh
GroupName = "Users"
For Each ctr In cdb.Containers
ctrName = ctr.Name
ctr.UserName = GroupName
Select Case ctrName
Case "Databases"
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
Select Case docName
Case "MSysDb"
doc.Permissions = dbFullNo
End Select
Next doc
Case "Forms"
ctr.Permissions = objsFullNo
ctr.Inherit = True
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
doc.Permissions = objsFullNo
Next doc
Case "Modules"
ctr.Permissions = objsFullNo
ctr.Inherit = True
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
doc.Permissions = objsFullNo
Next doc
Case "Reports"
ctr.Permissions = objsFullNo
ctr.Inherit = True
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
doc.Permissions = objsFullNo
Next doc
Case "Scripts"
ctr.Permissions = objsFullNo
ctr.Inherit = True
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
doc.Permissions = objsFullNo
Next doc
Case "Tables"
ctr.Permissions = objsFullNo
ctr.Inherit = True
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
L4 = Left$(docName, 4)
If L4 = "MSys" Or L4 = "~sq_" Then
GoTo nextloopxxx
End If
doc.Permissions = objsFullNo
nextloopxxx:
Next doc
End Select
Next ctr
CDefUsers_Grp = 0
CDefUsers_Grp_Exit:
Set cdb = Nothing
Set wsp = Nothing
Exit Function
CDefUsers_Grp_Err:
MsgBox Err & ": " & Err.Description
CDefUsers_Grp = 1
Resume CDefUsers_Grp_Exit
End Function
Code:
Public Function DdbUser_Grp(ByVal DatabaseName As String, ByVal GroupName As String) As Integer
Dim wsp As Workspace, cdb As Database, ctr As Container, doc As Document
Dim ctrName As String, docName As String
Dim L4 As String
Const dbOpenRun = 2
Const FrmRptOpenRun = 256
Const MacOpenRun = 8
Const tblqryExModify = 244 'All permissions Exluding Modify & Administr
'Permissions to Users-Group
On Error GoTo DdbUser_Grp_Err
Set wsp = DBEngine.Workspaces(0)
Set cdb = wsp.OpenDatabase(DatabaseName)
wsp.Groups.Refresh
For Each ctr In cdb.Containers
ctrName = ctr.Name
ctr.UserName = GroupName
Select Case ctrName
Case "Databases"
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
Select Case docName
Case "MSysDb"
doc.Permissions = doc.Permissions Or dbOpenRun
End Select
Next doc
Case "Forms"
ctr.Permissions = ctr.Permissions Or FrmRptOpenRun
ctr.Inherit = True
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
doc.Permissions = doc.Permissions Or FrmRptOpenRun
Next doc
Case "Reports"
ctr.Permissions = ctr.Permissions Or FrmRptOpenRun
ctr.Inherit = True
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
doc.Permissions = doc.Permissions Or FrmRptOpenRun
Next doc
Case "Scripts"
ctr.Permissions = ctr.Permissions Or MacOpenRun
ctr.Inherit = True
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
doc.Permissions = doc.Permissions Or MacOpenRun
Next doc
Case "Tables"
ctr.Permissions = ctr.Permissions Or objsFull
ctr.Inherit = True
For Each doc In ctr.Documents
docName = doc.Name
doc.UserName = GroupName
L4 = Left$(docName, 4)
If L4 = "MSys" Or L4 = "~sq_" Then
GoTo nextloopxxxx
End If
doc.Permissions = doc.Permissions Or tblqryExModify
nextloopxxxx:
Next doc
End Select
Next ctr
DdbUser_Grp = 0
DdbUser_Grp_Exit:
Set cdb = Nothing
Set wsp = Nothing
Exit Function
DdbUser_Grp_Err:
MsgBox Err & ": " & Err.Description, , "DdbUser_Grp"
DdbUser_Grp = 1
Resume DdbUser_Grp_Exit
End Function