Patent ID: 8190673

Claim:
A method, performed by a middle-tier server, for enforcing Enterprise Resource Planning software object permissions in a three-tiered architecture, the three-tiered architecture comprising a client computer, a database server, and the middle-tier server, the middle-tier server having an unmanaged code portion and a managed code portion, the managed code portion having code that executes under management of a virtual machine and the unmanaged code portion having code that does not execute under management of the virtual machine, the method comprising: receiving from the client computer, at the middle-tier server, a request to connect to a database at the database server, the request including an indication of a user; sending, from the middle-tier server, the received request to the database server; receiving at the middle-tier server, from the database server, user permissions indicating the rights of the user to access objects of the database; storing the received user permissions in the unmanaged code portion of the middle-tier server; identifying, by the middle-tier server, execute permissions associated with the user within the received user permissions stored in the unmanaged code portion of the middle-tier server, the identified execute permissions indicating the rights of the user to execute objects of the database at the database server; storing the identified execute permissions in the managed code portion of the middle-tier server by invoking a callback function of managed code; receiving from the client computer, at the middle-tier server, a request to execute a database object; accessing, by the middle-tier server, the identified execute permissions stored in the managed code portion of the middle-tier server to determine whether the user has permission to execute the database object; and when it is determined, by the middle-tier server, that the user has permission to execute the database object, granting the request to execute the database object, wherein the client computer, the database server, and the middle-tier server are remotely located from each other.