Information
Non-repudiation of actions taken is required in order to maintain application integrity. Examples of particular actions taken by individuals include creating information, sending a message, approving information (e.g., indicating concurrence or signing a contract), and receiving a message.
Non-repudiation protects individuals against later claims by an author of not having authored a particular document, a sender of not having transmitted a message, a receiver of not having received a message, or a signatory of not having signed a document.
Use of shared accounts does not provide individual accountability for actions taken on the DBMS or data. Whenever a single database account is used to connect to the database, a secondary authentication method that provides individual accountability is required. This scenario most frequently occurs when an externally hosted application authenticates individual users to the application and the application uses a single account to retrieve or update database information on behalf of the individual users (as in connection pooling).
When shared accounts are utilized without another means of identifying individual users, users may deny having performed a particular action.
(Shared accounts should not be confused with Windows groups, which are used in role-based access control.)
Solution
Remove user-accessible shared accounts and use individual userids.
Build/configure applications to ensure successful individual authentication prior to shared account access.
Ensure each user's identity is received and used in audit data in all relevant circumstances.
Design, develop, and implement a method to log use of any account to which more than one person has access. Restrict interactive access to shared accounts to the fewest persons possible.