Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
1 Chapter 13 Securing an Access Application 13 Chapter Objectives • Learn about the elements of security • Explore application-level security • Use user-level security 13 The Elements of Security • Security Refers to the protection of an application from unauthorized use • Authorization Specifies who can access and update different objects in the application 13 The Elements of Security • Application-level security Makes it difficult for unauthorized users to view the contents of the application • User-level security Gives different users different permissions for various objects that comprise an application • Permission Ability to perform an action on an object 13 Stripping Source Code • .mde file Compiled database file that cannot be modified, even though it is smaller and runs more quickly • Advantages of .mde file Can be distributed, but users cannot view or change the application’s objects Protects a developer’s investment in the application 13 Data Encryption and Decryption • Encryption Conversion of data from one representation into another New representation is coded so that it cannot be easily understood • Decryption Reverses the process of encryption 13 Data Encryption and Decryption • Security measures supplied by Access apply only to Access Encryption will make the data more difficult to read • To read encrypted files: You must possess processes and the decoding key necessary to decrypt the files 13 Creating a Database Password • Database password Simplest way to prevent unauthorized access to an Access application Can be set in the Set Database Password dialog box • You can’t set a database password if userlevel security has been defined for your database and you do not have Administer permission for the database 13 User-Level Security • User account An object that represents a user (or developer) of an Access application • PID Case-sensitive string that can hold between 4 and 20 characters Used in combination with the user name to create a 128-bit machine-readable number 13 User-Level Security • Workgroup Set of accounts that tend to access the same set of Access applications • Accounts in the workgroup share the same workgroup information file Have the .mdw extension Access reads file information when it starts Contains information about the users in a workgroup 13 User-Level Security • Workgroup identifier (WID) Uniquely identifies a workgroup Case-sensitive string that can hold between 4 and 20 characters • Owner of an object Special user who always has full permissions on the object Identified by the user name and PID 13 User-Level Security • Group Named collection of user accounts that share the same set of permissions on an application’s objects • Permissions Privilege 13 Creating and Joining Workgroups • Workgroups are created and managed through the Microsoft Access Workgroup Administrator Workgroup Administrator Application separate from Access File name Wrkgadm.exe • When a new workgroup is joined, the old workgroup is no longer considered active 13 User Accounts and Passwords • Admins group Group account that retains full permissions on all databases created when the workgroup was active • Users group Group account that contains all user accounts • Secure workgroup A workgroup that prompts for a user name and password 13 Creating a New User Account Figure 13-2 Entering a user 13 Creating a New User Account • Access applications use the user name and PID to determine the identity of the current user • Users can assign themselves a password when a database is open by using the Change Logon Password tab of the User and Group Accounts dialog box 13 Creating a New User Account Figure 13-3 Change Logon Password tab 13 Workgroup Dynamics • Workgroups do not share information including user name and password A user account and password must be created for each workgroup that a particular user must use • You can modify passwords and create new users within VBA 13 Users and Their Groups • Groups with the same group name and PID, regardless of workgroup, receive the same permissions on a particular application • When an application supports a large number of users, permissions should be managed through groups Easier to assign permissions to a few groups than to each individual user 13 Users and Their Groups • You can create or delete groups in the Group tab of the User and Group Accounts dialog box Figure 13-4 Entering a new group 13 Adding and Removing Users To and From Groups • Creating users and groups is less cumbersome under the ADO model than the DAO model Append the new user to the Users collection or new group to the Groups collection • A reciprocal relationship exists between the objects in a user’s Groups collection and the objects in the group’s Users collection 13 Adding and Removing Users To and From Groups Figure 13-6 Relationship between securityrelated objects in collections 13 Using and Assigning Permissions • Permissions can be assigned to: All database objects Database Individual users Groups of users All members of the group have the same permissions 13 Using and Assigning Permissions • Permissions can be assigned through the User and Group Permissions dialog box Figure 13-7 User and Group Permissions dialog box 13 Assigning Permissions Through User and Group Permissions Dialog Box • With OwnerAccess Option declaration Used when the developer would like the user to update data in a table, but does not want the user to view the details of the table’s design When possessed by a query, a user can run the query as long as the owner of the query has the appropriate permissions 13 Setting and Using Permissions in VBA • Access stores information related to Permissions in properties of the Container and Document objects Containers collection Located inside a database object A container exists for every type of object used in an Access application Contains a document collection,which also exists for every object 13 Setting and Using Permissions in VBA • SetPermissions method Sets a value that establishes the permissions for the user or group identified by the Group or User object • GetPermissions method Retrieves permissions once they have been set • Bitwise arithmetic Involves a bit-by-bit comparison of identically positioned bits in two numeric expressions 13 Owner and Admins Group Security Problems • User-level security is not complete until you have considered the special capabilities of Admins group members and owners • Owners of an object always have the ability to assign themselves full permissions on the object • If an application was created in an unsecured environment, the Admin account is the owner of all objects 13 Owner and Admins Group Security Problems Table 13-1 Permissions granted to users 13 Owner and Admins Group Security Problems • Important implications of these relationships: Admin account should not own any object in a secure application Workgroup used to create an application should not be distributed as part of the application • Developers can restrict the permissions of the Admin account and Admin group 13 Changing Object Ownership and Creating a Secure Application • Object owner User who creates an Access object Always has full permissions applicable to an object • Administer permission Exists regardless of whether the user is a member of the Admins group or whether an account in the Admins group attempts to change owner’s permission 13 Changing Object Ownership and Creating a Secure Application • If an object is not a database, it’s ownership may be changed through the Change Owner tab on the User and Group Permissions dialog box Figure 13-8 Change Owner tab 13 Changing Object Ownership • Owners of a database always have the right to open the database • To change the ownership of an entire database: Import the database into Access while you are logged on using the account of the new owner 13 Changing Object Ownership Figure 13-9 Import Objects dialog box 13 Changing Database Ownership and Securing an Application • The import database technique is one way to secure an unsecured application Allows ownership of all objects, including the database, to be transferred from an unsecured database 13 The User-Level Security Wizard • User-Level Security Wizard WILL: Create a new database Import all the objects from the old database Remove all permissions from the Users group Encrypt the new database • Application’s performance will be degraded slightly because it now uses an encrypted database 13 Preparing a Workgroup for Distribution • Each computer that runs an Access application must have access to: The application files The workgroup information file The Access default workgroup information file is used to run an application or The developer will distribute a workgroup information file 13 Chapter Summary • Security can be provided at both the application and the user levels • Application-level security has the same effect on all users of a particular Access database file • Database files can be encrypted and assigned a password 13 Chapter Summary • User-level security Provides different types of security for different users • Key to understanding how user-level security is implemented is to understand the relationships between workgroups, groups, users, owners, and permissions 13 Chapter Summary • Admins members can always modify their own permissions when the workgroup that created an Access application is active • Owners can modify their own permissions no matter which workgroup is active • Security features can be implemented through Access menus and VBA