System and method for dynamically controlling access to a database

A system and method for controlling access to an ACL list protected database. Each of one or more access control documents includes a start time or an end time, and a start access control list or an end access control list. An access control agent permits access to the database after the start time by reference to the start access control list and after the end time by reference to the end access control list.

BACKGROUND OF THE INVENTION

1. Technical Field of the Invention

This invention relates to computer databases. More particularly, it relates to controlling access to a database by agents and end-users.

2. Background Art

Many Lotus Domino database applications have both high end-user usage, often across multiple time zones, as well as high agent usage—that is, modifications to the data by scheduled programs. A database or application typically includes documents, data elements (fields), agents and access control lists (ACL's). Agents update data elements in one or more documents and may be invoked by an end user. Scheduled agents update data elements in one or more documents automatically without the need for invocation by an end user. ACL's control the degree to which an end user or an agent may access a database

Concurrent updating of documents by both end-user and agent can result in save conflicts, replication conflicts and other unpredictable results.

Problems occur when end-users, agents, and/or replication processes simultaneously access a database. These include replication conflicts and save conflicts resulting in the updates of one or more parties being lost. An example of these problems involves the high volume off-shift updating of documents, where it is desirable to temporarily revoke end user edit access until the bulk updates are completed in order to avoid inadvertent updates of the same document. The resulting conflict documents, depending on how they are handled by the database administrator or follow on agents, could result in loss of data, duplicate documents or both. Thus, there is a need in the art for an improved system and method for minimizing or entirely eliminating replication and/or save conflicts.

It is an object of the invention to provide an improved system for controlling access to a computer databases.

SUMMARY OF THE INVENTION

System and method for dynamically controlling access to a database. An access control agent uses one or more access control documents for the database, each document having a start time and/or an end time, and a start access control list and/or an end access control list. The agent permits access to the database after the start time only by those on the start access control list and after the stop time only by those on the end access control list.

In accordance with an aspect of the invention, there is provided a computer program product configured to be operable to dynamically control access to a database by instantiating an access control agent which references an access control document to permit access to the database after a start time only by those on a start access control list and after a stop time only by those on an end access control list.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Referring toFIG. 1, a preferred embodiment of the invention provides a system and method for automatically enforcing a strict window of read-only end-user access to databases while selected agents are executing. In an exemplary embodiment, an access control list (ACL) manager selectively revokes and restores update access to a database in a scheduled manner to minimize if not eliminate entirely replication and/or save conflicts.

Data store10including a plurality of databases12,14,16on one or more devices. Associated with each database is an access control list (ACL)13,15,17, respectively, residing on the same or another device. The system also includes an access control list (ACL) manager20, a plurality of process agents22,24,26,28, and a plurality of users32,34,36. Access control manager20includes access control manager agent19and access control documents21. As illustrated, by way of example, processing agents22and24access database12, agent26accesses database14, and agent28access database16. Users32,34, and36each desire access to all databases within data store10. An access control list13lists users, groups of users, servers, groups of servers, and roles authorized to access a given database, together with their respective levels of authorization, such levels including “no access”, “despositor”, “reader”, “author”, “editor”, “designer”, and “manager”.

In operation, ACL manager20suspends edit access for all specified ACL13,15,17entries at start of agent22–28processing, restores edit access for all specified ACL13,15,17entries at end of agent processing, and contains control documents21,70–84which specify start and end times54and lists of start and end affected ACL entries60. ACL manager20contains an agent19and documents21(documents70–86,FIGS. 3–11) which specify which ACL13,15,17entries60for which databases12,14,16are to be relegated to read only access, what their normal level of authority is, and the start and end times54for the relegation. This agent19uses one or more access control documents21for the databases12,14,16, each document21having a start time or an end time54, a start access control list or an end access control list47. Agent19permits access to database12, for example, after the start time only by those agents22and users32,34,36on a start access control list13and after the stop time only by those agents22and users32,34,36on an end access control list13. This agent19residing within ACL manager20modifies the access control list (ACL)13,15,17for a given database12,14,16, respectively, in accordance with the database ACL manager document21(documents70–84,FIGS. 4–11).

FIGS. 3 through 11illustrate access control manager documents (also referred to as access control list documents21), andFIG. 12illustrates an access control list. Access control manager documents21(including70–86) specify how an access control list13,15,17is modified by processing agent20.

FIG. 3illustrates an exemplary access control manager document70(which is one of documents21, as are also documents72–86described hereafter) for disabling editor access to file47cim.nsf during daily agent execution.

Server50represents the server version of a database management system, such as DB2, Domino, Oracle, Sybase, and so forth.

Path45and filename47define the location of a database on the server, and are used by agent19to know precisely which database or database application12,14,16needs to have its ACL13,15,17modified in accordance with access control documents21.

Action specification58is set to action enabled or action disabled. Action58refers to the processing specified by this document21for ACL entries affected60. An action performs the access control modification. Whether it be temporarily revoking or altering normal access or restoring normal access. Thus, there will always be two complementary actions for a given database and aCL: one to revoke and/or alter normal access and one to restore it. They are both enabled while they are required and may be deleted outright if they are no longer needed or temporarily disabled until they are needed again.

Days52and time54specify the day and time in a first document21for revoking access by document21to perform the actions specified on entries affected60, and in a later document21for restoring original access by agent19to ACL's13,15,17, etc.

Threshold56specifies the amount of time a processing agent22–28should run while attending to a specific action.

Last execution date43refers to the date when processing agent22–28last performed its action.

Entries affected60lists the person or group entries in the access control list which are affected by an action.

New access62specifies the new access control level for the corresponding entries in entries affected60.

New roles64specifies the new roles for the corresponding entries in entries affected60.

Other66specifies other ACL elements affected, such as the ability to run agents, create private views, create documents, delete documents, and so forth.

FIG. 4illustrates an exemplary access control manager document72for enabling editor access to file47cim.nsf during daily agent execution. In this case, administrators, editors, site reps and deployers60are given editor access62with respect to cim.nsf47on server mdnetnws50, administrators are given administration, planning, deployers, and reqcascade roles64, editors are given deployers role64, site reps are given planning, deployers, and reqcascade roles, and deployers are given planning and deployers roles.

FIG. 5illustrates an exemplary access control manager document74for disabling editor access to file47cacm.nsf during daily agent execution. In this case, administrators and editors60are given reader access62.

FIG. 6illustrates an exemplary access control manager document76for enabling editor access to file cacm.nsf during daily agent execution. In this case, administrators and editors are given editor access and administration roles.

FIG. 7illustrates an exemplary access control manager document78for enabling delete documents, write public documents, and read public documents access to file test. In this case ACL entry Bob The Man is given manager access62, new roles64testrole1through testrole6and some other66characteristic “x”, including delete documents; write public documents; read public documents; write public documents78. Characteristic “x” refers to other elements (beyond access level and roles) of an ACL, such as ACL13, that may be modified by ACL manager20. The complete list of such elements includes: create documents; delete documents; create personal agents; create personal folders/views; create shared folders/views; create LotusScript/Java agents; read public documents; create public documents.

FIG. 8illustrates an exemplary access control manager document80for disabling editor access to file tgaim.nsf during daily (Monday through Saturday, starting at time5407:40 PM for threshold5630 minutes ) agent execution. Administrators and transfers are provided reader access.

FIG. 9illustrates an exemplary access control manager document82for enabling editor access to file tgaim.nsf during daily agent execution. Administrators are given editor access, and roles PCFDBAdmins, PCFDBReaders, and Transfers; transfers are given editor access62and roles64PCFDBReaders and transfers; and both administrators and transfers are given other66, which includes create personal folders/views; create shared folders/views; create personal folders/views. The complete list of such elements includes: create documents; delete documents; create personal agents; create personal folders/views; create shared folders/views; create LotusScript/Java agents; read public documents; create public documents.

FIG. 10illustrates an exemplary access control manager document84for disabling editor access to file tgwpdm.nsf during daily agent execution. In this example, BA representatives, delivery project executives, IT representatives, and administrators are given reader access62.

FIG. 11illustrates an exemplary access control manager document86for enabling editor access to file tgwpdm.nsf during daily agent execution. BA representatives, delivery project executives, IT representatives and administrators are given editor access62, and administrators60are given new role64of WPDMAdmins and other66of “delete documents”.

FIG. 12illustrates selected portions of an access control list. Such a list88includes a drop down list92for selecting for viewing in window94people, servers, and/or groups—in this example, all; user type drop down list102, access drop down list104, access type list106, and roles list108. OK, cancel and help buttons are also provided. An access control manager document70–86determines how an access control list88is modified by processing agent19in accordance with an exemplary embodiment of the present invention.

In a further exemplary embodiment of the invention, a user32is provided an existing session which gives him rights that override ACL manager20. This is handled by a scheduled server program document21which does a ‘drop all’ that runs immediately preceding the ACL modifier21. An alternative embodiment would do selective drops of people with author access or greater. A program document residing on a server outside of a database application may perform server wide operations such as dropping users from accessing a database or server.

Referring toFIGS. 13A and 13B, an exemplary embodiment of the method of the invention is set forth.

In step120, processing agent19in ACL manager20begins execution, and in step120looks for database ACL documents21. If none are found in step124, in step126processing ends; else, in step128, processing continues for each document21found.

In step130, if server50cannot be found (does not exist or cannot be accessed), in step150an error is logged and processing continues to the next document21found in step122. Similarly, an error is logged in step150and processing continues to the next document21found in step122if in step132path45and filename47to a database12(or14,16, etc.) do not exist for this document21; or in step134if ACL manager20does not have sufficient access to the database identified by path45and filename47to perform the ACL modifications specified by new access62, new roles64, and other66specifications of this document21; or in step138if no days52are selected or no time54is specified; or in step142if processing threshold56is reached; or in step144no affected entries60exist. In step136, if action58is set to disabled, then in step152processing ends for this document. In step140, if this document21has already been processed today, then in step152processing ends for this document. Otherwise, in step146all modifications62,64,66for all entries60of document21are performed on the addressed ACL13,15, or17, etc., and processing continues to the next document21until all documents have been processed and processing ends in step126.

ADVANTAGE OVER THE PRIOR ART

It is an advantage of the invention that there is provided an improved system and method for controlling access to a computer database.

It is an advantage of the invention that there is provided a system and method for controlling access to a computer database by agents and applications.

It is an advantage of the invention that there is provided a system and method for automatically and temporally controlling access to a computer database by agents and applications.

It is an advantage of the invention that there is provided a system and method for temporally adjusting ACL lists referenced for authorizing or controlling access to a computer database.

It is a further advantage of the invention that there is provided a system and method for temporarily adjust ACL lists referenced by agents and users for authorizing or controlling access to a computer database, and the documents and data elements therein.

ALTERNATIVE EMBODIMENTS

It will be appreciated that, although specific embodiments of the invention have been described herein for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention. In particular, it is within the scope of the invention to provide a computer program product or program element, or a program storage or memory device such as a solid or fluid transmission medium, magnetic or optical wire, tape or disc, or the like, for storing signals readable by a machine, for controlling the operation of a computer according to the method of the invention and/or to structure its components in accordance with the system of the invention.

Further, each step of the method may be executed on any general computer, such as IBM Systems designated as zSeries, iSeries, xSeries, and pSeries, or the like and pursuant to one or more, or a part of one or more, program elements, modules or objects generated from any programming language, such as C++, Java, Pl/1, Fortran or the like. And still further, each said step, or a file or object or the like implementing each said step, may be executed by special purpose hardware or a circuit module designed for that purpose.

Accordingly, the scope of protection of this invention is limited only by the following claims and their equivalents.