While Microsoft Access database is not an enterprise



Similar documents
City of Madison Information Technology Recommended Internal Controls for MS Access

IT Governance and Outsourcing

Information security governance has become an essential

Security Development Tool for Microsoft Dynamics AX 2012 WHITEPAPER

In recent years, information technology (IT) used by firms,

This article describes the history of the Payment Card

Understanding MS Access Security

Feature. Log Management: A Pragmatic Approach to PCI DSS

Journal Online. Impact of Security Awareness Training Components on Perceived Security Effectiveness. Do you have something to say about this article?

Microsoft Dynamics GP. Electronic Signatures

Course: Access Cragwood Rd, Suite 35 South Plainfield, NJ Victoria Commons, 613 Hope Rd Building #5, Eatontown, NJ 07724

Lesson 07: MS ACCESS - Handout. Introduction to database (30 mins)

Microsoft Access Glossary of Terms

Online Transaction Processing in SQL Server 2008

HP ProtectTools Embedded Security Guide

ADP Workforce Now V3.0

HP Service Manager. Software Version: 9.40 For the supported Windows and Linux operating systems. Application Setup help topics for printing

FOR WINDOWS FILE SERVERS

ADP Workforce Now Security Guide. Version 2.0-1

2007 Microsoft Office System Document Encryption

Tools > Commands moved mostly to the Database Tools tab. Spelling > Home Records Spelling Office Links > External Data. Removed from product

Setting Up ALERE with Client/Server Data

InformationNOW System Preferences

GP REPORTS VIEWER USER GUIDE

enicq 5 System Administrator s Guide

Inmagic Content Server Standard and Enterprise Configurations Technical Guidelines

Microsoft Migrating to Access 2010 from Access 2003

HIPAA: MANAGING ACCESS TO SYSTEMS STORING ephi WITH SECRET SERVER

Blackbaud, Inc. This publication, or any part thereof, may not be reproduced or transmitted in any form or by any means, electronic, or

Microsoft Dynamics GP. Audit Trails

1 of 10 1/31/2014 4:08 PM

Microsoft Access is an outstanding environment for both database users and professional. Introduction to Microsoft Access and Programming SESSION

Database Concepts (3 rd Edition) APPENDIX D Getting Started with Microsoft Access 2007

MICHIGAN AUDIT REPORT OFFICE OF THE AUDITOR GENERAL THOMAS H. MCTAVISH, C.P.A. AUDITOR GENERAL

HP ProtectTools for Small Business Security Software, Version User Guide

Using Entrust certificates with Microsoft Office and Windows

Table of Contents SQL Server Option

MySQL Security: Best Practices

Sophos Mobile Control Administrator guide. Product version: 3

Version 4.61 or Later. Copyright 2013 Interactive Financial Solutions, Inc. All Rights Reserved. ProviderPro Network Administration Guide.

Full Compliance Contents

Blackbaud FundWare Accounts Receivable Guide VOLUME 1 SETTING UP ACCOUNTS RECEIVABLE

TREENO ELECTRONIC DOCUMENT MANAGEMENT. Administration Guide

MS SQL Server Backup - User Guide

Forms Printer User Guide

CA Nimsoft Unified Management Portal

Tips and Tricks SAGE ACCPAC INTELLIGENCE

Vector HelpDesk - Administrator s Guide

A New Platform for Building and Managing Business Owned Applications (BOAs) for Insurance Organizations

With the dawn of the 21st century, a new era of

Retention Policy Module Admin and User Guide

How To Backup A Database In Navision

Time & Expense Entry WalkThrough

Search help. More on Office.com: images templates

ROUNDTABLE TSMS v9.1c - MS-Windows. Install Notes

ATX Document Manager. User Guide

Special Edition for FastTrack Software

Concepts of Database Management Seventh Edition. Chapter 7 DBMS Functions

EZManage SQL Pro. Quick guide for installation and implementation

SOLAARsecurity. Administrator Software Manual Issue 2

Online Backup and Recovery Manager Setup for Microsoft Windows.

B.Sc (Computer Science) Database Management Systems UNIT-V

Inmagic Content Server v9 Standard Configuration Technical Guidelines

INTRODUCTION: SQL SERVER ACCESS / LOGIN ACCOUNT INFO:

Secure Configuration Guide

SECUR IN MIRTH CONNECT. Best Practices and Vulnerabilities of Mirth Connect. Author: Jeff Campbell Technical Consultant, Galen Healthcare Solutions

Trend Micro Incorporated reserves the right to make changes to this document and to the products described herein without notice.

Microsoft Access Basics

Access Database Design

An Oracle White Paper June Security and the Oracle Database Cloud Service

OPENGATE DATABASE MANAGER FOR MICROSOFT ACCESS

GeneMapper ID-X Software Version 1.0

Making Database Security an IT Security Priority

1. Linking among several worksheets in the same workbook 2. Linking data from one workbook to another

Horizon Debt Collect. User s and Administrator s Guide

Add an Audit Trail to your Access Database

Centran Version 4 Getting Started Guide KABA MAS. Table Of Contents

Create a Client Engagement

HRMS Reporting Tool Class

TheFinancialEdge. Administration Guide

User Guide. Version 3.2. Copyright Snow Software AB. All rights reserved.

Table Of Contents. Welcome to Abebooks HomeBase Inventory Management Software version Quick Tour Toolbar... 2

Moving a database from MS Access to MS SQL server. Introduction. Selecting the database. Creating a Data Source

Session Administration System (SAS) Manager s Guide

Liquid Machines Document Control Client Version 7. Helpdesk Run Book and Troubleshooting Guide

nopcommerce User Guide

TheFinancialEdge. Administration Guide

FMW-FIR. Financial Information Return For Ontario Municipalities

Vyapin Office 365 Management Suite

ImagineWorldClient Client Management Software. User s Manual. (Revision-2)

ADO and SQL Server Security

DESKTOP PRODUCTIVITY SOFTWARE

WINDOWS 7 & HOMEGROUP

JD Edwards World. Database Audit Manager Release A9.3 E

Contents COMBO SCREEN FOR THEPATRON EDGE ONLINE...1 TICKET/EVENT BUNDLES...11 INDEX...71

Online File Folder. Getting Started Guide. Become an Expert at Managing Your Files Online. wind. Online File Folder // Getting Started Guide

Sophos Disk Encryption License migration guide. Product version: 5.61 Document date: June 2012

NovaBACKUP. Storage Server. NovaStor / May 2011

Microsoft Dynamics GP Audit Trails

Transcription:

Copyright 2006 ISACA. All rights reserved. www.isaca.org. Important, But Often Dismissed: Internal Control in a Microsoft Access Database By John H. White, Ph.D., CISA, CPA While Microsoft Access database is not an enterprise database system, tens of thousands of business applications are housed in this software worldwide. Since Access applications are used primarily by individuals and small work groups, it is often overlooked or dismissed as immaterial or unworthy of application control investigation by IT auditors when considering internal controls. The sheer number of Access applications, however, suggests that one should have a working knowledge of internal controls available for Access when designing or auditing these database applications. Many Access applications contain data that feed other applications at a higher level of the information system, which in turn feed the highest level of management information, including the organization s financial statements. Thus, Access can be, and often is, a material application in the overall MIS; a chain is only as strong as its weakest link. Access is a file-server, not a client-server, database, and the usual front-end application and back-end database of the client-server architecture are not separated in Access, but combined and contained in the same file (with an MDB file extension). Since the Access application file contains the application process business rules, the user interface (forms, reports) to the data, the database s metadata, the physical database itself and the database engine, the controls to consider include not only the usual application control categories of input, processing and output controls, but also standard database controls. Because Access contains the application s Visual Basic (VB) code and other database and application objects 1 in the same file, the distinction between application controls and database controls becomes blurred. Perhaps this is why discussion of Access internal controls is seldom found in the literature. This article identifies and discusses the various internal controls that can be placed in and around Access applications, including existence controls, database controls, input controls, processing controls and output controls. General IT controls around IT operations, system development life cycle (SDLC) and change controls, and network security are not generally considered here, although protecting Access s programmed business rules, database object design views, programmed data retrieval (SQL) and existence controls are discussed. Again, the combination of application objects and database objects in the same MDB file makes it difficult to disregard the area of SDLC IT general controls when considering Access security. Application and Database Controls Figure 1 categorizes the usual database control activities 2 to be considered in any database application. Columns 1 and 2 name and generally describe the control, while column 3 lists how the control can or cannot be implemented specifically in Access. Column 1 also contains a cross-reference to the list of recommended application control objectives, identified by ACn, as found in ITGI s COBIT 4.0 framework. 3 Some of the controls in figure 1 are closer to general controls than application controls; therefore, they do not cross-reference to a COBIT 4.0 application control (ACn). Following figure 1, the Access availability (see column 3) of these application and database controls is described in more detail. Following figure 1 and the detailed discussion of its column 3, figures 2, 3 and 4 are analogous, showing IT application input controls, processing controls and output controls respectively, with detail of the Access availability of column 3 of each of those figures following each one. Figure 1 Database Controls in Microsoft Access User Prevent There is a single password for any access unauthorized and all users to open the database. controls access to data There is a separate password to tables and queries view and/or change the VB code COBIT: AC6 in general modules or class modules. The standard menu bar with its various administrator functions and permissions can be hidden and a customized menu bar inserted instead, thus denying access to many administrator or database owner powers. There is a user-level specific login and password with granular permissions down to the database and application object levels (tables, forms, etc.). Development Restrict or Start-up parameters are used to tools remove source hide and/or disable design views controls code programming of database objects, hide standard language and menus, enable custom menu, and design view of disable special key functions. database objects, A compiled version (MDE) so they cannot of the MDB file can be created to be viewed or changed by a user remove user access to all database and application objects, including design views and VB code. 1

Figure 1 Database Controls in Microsoft Access (cont.) Data Protect against Multiple levels of data locking are concurrency deadlocks when available for concurrent users controls two query or and can be set by the database update processes administrator (DBA). access the same data item at the same time Cryptographic Convert all clear The entire database must be controls text to encrypted encrypted/decrypted; encryption text, which by specific data field is not COBIT: AC18 cannot be read available. and interpreted with any type of text editor Existence Protect the There are no available Access controls existence of the functions for backup or recovery; database by manual IT procedures or general establishing network controls must be used backup and for backup and recovery of entire recovery Access database file. procedures Data Ensure the Table attributes can be assigned validation accuracy, properties such as data type and controls completeness and size, data required (y/n), default consistency of values, input masks, and COBIT: AC7, data that are input validation rules (e.g., value AC8 and maintained in ranges). the database Audit trail Provide a log There are no available Access controls (journal) of functions for audit trails or logs; database activity application must provide custom COBIT: AC8 of users and programming for this. application events and data Database Controls Available in an Access Database This section examines controls available in Access over the entire database file and the individual database and application objects. It covers in more depth the bulleted list in column 3 of figure 1. User Access Controls and Development Tools Controls Access has a variety of tools for user access control and development tool controls. In this case, these two control areas are discussed in the same section since they both limit user access to specific data and administrator/owner tools that allow design changes to data or to the business rules embedded in the software that manages the database and application objects. A single open-the-application password can be assigned to open the application, but once users are allowed in the database, they have full access to all menus, design screens, table data, etc.; thus, this is a weak access control. The open-the-database password can also be changed or turned off by any user who knows the password, is in the database and has access to the standard menu. In addition to the open-the-database password, Access has a separate programming password that can be set up to disallow a user to view and change the VB procedures and modules (code). This programming password should always be set up in any commercial Access application; otherwise, any other controls that are in place may be compromised by a user with knowledge of VB programming methods. There are other methods to control user access to the VB code; see below. The control weakness of having various administrator or database owner functions available to all users on the standard menu was mentioned previously. This can be controlled by replacing the standard menu with a customized menu without such functions. Creating and employing a customized menu are relatively easy to do, but anecdotal evidence from the author s experience shows that this simple, yet powerful, control is rarely found in Access applications. In fact, most commercial Access applications are left totally unsecured, with the database window, all database and application objects, and the standard (full) menus exposed and accessible to all users. Several techniques, including the custom menu bar solution suggested previously, are available to hide and secure these windows, objects and design screens. In addition, a set of startup parameters is available to hide the database window and, therefore, limit access to all Access objects, open a specific start-up screen and disable special function shortcut keys. If the database window and objects are thus hidden, a set of user interface screens (forms) must be present to allow the users to navigate around the application and carry out the tasks assigned to them, since they will no longer be able to assess database objects by simply clicking on them in the database window. Access references and literature refer to these user interface navigation screens as a switchboard form. Another powerful database access control is to compile the Access MDB file into an MDE file, which is easily done from the standard menus. By definition, an MDE version of an Access application will prevent the following actions by users: Viewing, modifying or creating forms, reports or VB modules in design view Adding, deleting or changing references to object libraries or other databases Changing VB code (an MDE file contains no source code) Importing or exporting forms, reports or VB modules (however, tables, queries and web pages can still be imported and exported if the standard menu is available) Combining MDE compilation with the custom menu and start-up parameters discussed provides a strong access control environment and is recommended on all commercial Access applications. Access applications without these database-level access controls would probably have to be classified as having materially weak controls. Access User-level Security Permission Controls A powerful user-level security function is available in Access. Users can be set up with logins and passwords and assigned to database roles (called groups in Access) that have individualized permissions. Permissions are definable down to the database and application object level, with several choices of available permissions on an object, including read-only; open and update, but no design changes; and several others. 2

By default, Access user-level security is always on and contains a single user named Admin belonging to the administrator group and having a blank password. In this state, opening the application by anyone will not invoke the loginpassword screen, and the user will be automatically allowed in as the Admin user with unlimited permissions due to belonging to the administrator group. Setting up Access user-level security is rather complex (which is probably why it is rarely seen) and will not be covered in detail here. Instructions can be found in the Access help file, in articles and white papers on the Microsoft Developer Network (MSDN) web site, and in Access how-to books at bookstores. Setup requires the usual database security tasks of creating users/passwords/groups, assigning granular permissions to groups and finally assigning users to groups. The security groups and their permissions must be carefully designed to be effective. Access provides a canned security report to document the security program s users, groups and permissions that have been set up; thus, the IT auditor can quickly determine the degree of user-level security that has been implemented. Access Data Concurrency Controls Access has multiple levels of data-locking controls, all the way from exclusive read-only access for a single user, to multiple users with several record-locking capabilities. Individual data item (field) locking is not available. The level and type of record locking are database parameters set by the owner or administrator of the database. Access Cryptographic Controls An entire Access database can be easily encrypted from the standard menu; however, any user with access to the database standard menu can just as easily decrypt it. Even with this weakness, encrypted data provide some security against unauthorized users viewing the file in a low-level disk editor or against interception if the entire MDB file is transmitted across the network or Internet. Microsoft reports that encrypted Access files lose approximately 15 percent in speed performance. It is important to keep in mind that encryption is useful only against outside hackers trying to view the confidential data using some type of editor. If the hacker can open the database, the Access software will automatically decrypt the data as it must for any authorized user. Access Data Validation Controls at the Database Level The Access table designer and related table attribute design properties allow a variety of validation controls at the database level. Properties available to the table designer are data type, input mask, data required (y/n), validation rule (data range) and embedded data code lists (e.g., two-character codes for states). Of course, the table designer should be hidden from ordinary users. Access Existence Controls and Audit Trail Controls Access does not have any specific functions for backup and recovery, nor for creating and maintaining audit trails. These important controls need to be designed into the application code itself and/or should be a part of the general IT controls surrounding the Access application. Figure 2 Input Controls in Microsoft Access Batch Protect integrity There are no available Access controls of data input by functions for batch controls; the reconciling input application must provide COBIT: AC7 number of programming for this. records, hash totals and monetary amount totals input to pre-input totals Data code Provide checks Specific required values from a controls on the integrity of drop-down list on the input form data codes, such can be placed on the data item COBIT: AC7 as customer textbox. number or Check digits are not specifically inventory number, supported in Access; they must by restricting input be programmed in the application. data to specifically allowed values; prevent transcription or transposition errors Validation Ensure the Input form data fields (textboxes) controls accuracy, can be assigned physical completeness and properties, such as input masks COBIT: AC7 consistency of or range tests. input data items Input form data fields (textboxes) can be assigned a validation rule and error text. The entire input form can be secured as read only, edit only, delete only, input only or any combination. Individual input data fields (textboxes) on forms can be secured by disabling and/or lockout. Input Controls in an Access Database This section examines the application input controls column 3 of figure 2. Access Input Batch and Data Code Controls Access has no built-in capability for input batch controls. This simple, yet effective, control must be programmed into the application using VB procedures and SQL queries to compute, record and display batch record counts, hash totals and monetary totals. Data code controls (e.g., check digits) are very limited in Access and, in general, must also be custom-programmed if needed. One exception is to use Access wizards to attach combo box droplists of allowed data to textboxes on data input forms. Access Input Validation Controls Setting table attribute properties for data validation control at the database level has already been discussed. Input data validation at the application level can also be implemented by creating validation rules and validation error text attached to 3

Figure 3 Processing Controls in Microsoft Access Error Display and There are no available Access messages record appropriate functions for error logs; the and logs information for application must provide any errors programming for this. COBIT: AC11 encountered during processing procedures Run-to-run Protect integrity There are no available Access batch control of data processed functions for batch controls; the totals by reconciling application must provide number of programming for this. COBIT: AC9 records, hash totals and monetary amount totals before, during and after processing steps, and compare to previously saved batch input totals Validation and Ensure the Ther are no available Access data code accuracy, functions at the processing step; controls completeness the application must provide and consistency custom programming for this. COBIT: AC10 of data items processed the data field textboxes on the data input form. Although the same validation rules in the tables and input form may be redundant, it is preferable to have them in both places. For instance, the data range of the attribute may be increased at the table level by the administrator, due to a business rule change, but data input for certain events (transactions) may still need the older and stricter data validation rule that can be enforced at the application data input screen level. In addition to range validation controls, non-null data requirements, input format masks and default value validation controls can also be created for data input fields on the input screen. Processing Controls in an Access Database This section examines the application processing controls column 3 of figure 3. Access Processing Controls Access has no built-in capability for processing controls. Error messages and logs, run-to-run batch control totals, data code controls, validation controls, and the audit trail of processing steps must be custom-programmed into the application using VB code operating on database objects (tables, queries, forms, reports, etc.). A well-controlled Access application would have all of these controls, and the absence of these controls would certainly indicate material weakness in internal control for the Access application and, therefore, perhaps other processes linked to the Access application. Output Controls in an Access Database This section examines the application output controls column 3 of figure 4. Figure 4 Output Controls in Microsoft Access Report Provide limitation Report open permissions can be output over the assigned to individual qualified controls production and users through user-level distribution of permissions. COBIT: AC12, reports There are no available Access AC13, AC16 functions for report distribution controls. Display Provide limitation Input form open permissions can output over the be assigned to individual qualified controls production and users through user-level distribution to permissions. COBIT: AC12, data in forms AC13, AC16 (i.e., screens and windows) Access Output Controls Access can assign user-level permissions to open and, therefore, view or print the data contents of data display in forms and hard-copy reports. This user-level access control is enforced via user login names and passwords and was described previously. Access has no built-in capacity to control output distribution once it can be viewed or printed by a qualified user. Auditing Controls in an Access Application Based on the previous discussion of the database and input, processing and output controls found in and around Access applications, the following are suggested internal control questions 4 to be asked by the IT auditor concerning any material Access application. The more yes answers to the questions about the application, the stronger the controls could be rated and the smaller the control risk could be judged, assuming the evidence collected in the tests of controls corroborated the yes answers. The final control risk assigned to the application would be based on many factors not considered in this article, including the general IT controls in place and, of course, one s professional IT auditing experience and judgment. Access internal control questions to be asked by the IT auditor include: 1. Is the standard menu hidden and replaced by a custom menu that is absent all of the database application developer functions? a. If the answer is no, the application has serious control problems, since most of the other controls applied to the application can be compromised by the user s access to the developer tools. 2. Is the installed application compiled to an MDE file? a. If the answers to numbers 1 and 2 are both yes, internal control is definitely achievable in this Access application, although additional controls may be needed (see numbers 3 through 12). b. If the answer to number 1 is yes but the answer to number 2 is no, internal control is achievable, but many controls automatically available through a yes answer to number 2 will have to be achieved by a combination of several other controls listed below. c. If the answer to number 1 is no and number 2 is yes, it is doubtful that control can be achieved due to the powerful development tools available to the ordinary user. 4

d. If the answers to number 1 and number 2 are both no, then control is definitely not achievable. 3. Has a password been set up to restrict access to the VB code found in general and class modules and procedures? a. This control is not needed if a compiled MDE file is created (i.e., if a yes answer was given to number 2). 4. Has a single password needed to open the Access file been set up for all users? a. It is not needed if user-level controls are implemented (see number 8). 5. Is the Access file encrypted? a. If database performance degradation (approximately 15 percent) due to encryption is a problem, a strong network access control system may be effective and used in lieu of encryption. 6. Are data concurrency controls set up by the database administrator or owner? 7. Have data validation controls been set up at the table level for appropriate data fields? a. Non-null data requirement? b. Default values? c. Data code drop-down lists for textboxes (if applicable)? d. Input masks (if applicable)? e. Data validation ranges and error text messages and error logs? 8. Are user-level security controls with individual permissions implemented? a. This is easy to determine by opening the Access database and seeing if user login and password are prompted. 9. Are run-to-run batch processing controls programmed into the application? 10. Are audit trail controls programmed into the application? 11. Are error log controls programmed into the application? 12. Are existence controls (backup and recovery) in place (not really an application control)? Conclusions Access is used worldwide to house business database applications. Most commercial Access applications are totally unsecured or, at best, only partially secured and, therefore, are easy prey for even an unsophisticated hacker or malevolent employee. Access has a variety of security tools and methods available to the designer, and they should be investigated and tested (if necessary) by the IT auditor. The IT auditor must be familiar with the tools to perform a competent audit of material Access applications that should be controlled and secured. For a well-controlled Access application, the standard menu should be replaced with a custom menu, data validation input and processing controls must be present, user-level control permissions must be implemented, and the MDB file should be compiled to an MDE file. Endnotes 1 Database objects include tables, attributes, relationships and queries (i.e., views and stored procedures). Application objects include forms, reports, macros, web pages, and Visual Basic procedures and modules. All of these objects have multiple properties that further define and describe them. 2 Weber, Ron; Information Systems Control and Audit, Prentice Hall, USA, 1999, p. 216 3 IT Governance Institute, COBIT 4.0, 2005, p. 17-18 4 These questions do not by themselves make a professionally designed Access audit program, although they could lead to a good start on one. John H. White, Ph.D., CISA, CPA is a clinical professor in the School of Accountancy, Daniels College of Business, at the University of Denver (Colorado, USA), where he teaches financial accounting, database technology and IT auditing. He previously was a partner in a public accounting firm, specializing in systems design and auditing, and he has held CFO positions in the construction industry and higher education. In addition to teaching, he actively consults in the areas of design, control and auditing of database systems and accounting internal control design and analysis. He is a member of the audit committee of several nonprofit organizations and is an officer and board member of the Denver Chapter of ISACA. Information Systems Control Journal, formerly the IS Audit & Control Journal, is published by the Information Systems Audit and Control Association, Inc.. Membership in the association, a voluntary organization of persons interested in information systems (IS) auditing, control and security, entitles one to receive an annual subscription to the Information Systems Control Journal. Opinions expressed in the Information Systems Control Journal represent the views of the authors and advertisers. They may differ from policies and official statements of the Information Systems Audit and Control Association and/or the IT Governance Institute and their committees, and from opinions endorsed by authors' employers, or the editors of this Journal. Information Systems Control Journal does not attest to the originality of authors' content. Copyright 2004 by Information Systems Audit and Control Association Inc., formerly the EDP Auditors Association. All rights reserved. ISCA TM Information Systems Control Association TM Instructors are permitted to photocopy isolated articles for noncommercial classroom use without fee. For other copying, reprint or republication, permission must be obtained in writing from the association. Where necessary, permission is granted by the copyright owners for those registered with the Copyright Clearance Center (CCC), 27 Congress St., Salem, Mass. 01970, to photocopy articles owned by the Information Systems Audit and Control Association Inc., for a flat fee of US $2.50 per article plus 25 per page. Send payment to the CCC stating the ISSN (1526-7407), date, volume, and first and last page number of each article. Copying for other than personal use or internal reference, or of articles or columns not owned by the association without express permission of the association or the copyright owner is expressly prohibited. www.isaca.org