Title: The DBMS must isolate security functions from non-security functions by means of separate security domains.
Vulnerability ID: V-32536
IA Controls: None
Description: Security functions are defined as “the hardware, software, and/or firmware of the information system responsible for enforcing the system security policy and supporting the isolation of code and data on which the protection is based”.
Developers and implementers can increase the assurance in security functions by employing well-defined security policy models, structured, disciplined, and rigorous hardware and software development techniques, and sound system/security engineering principles.
Database Management Systems typically separate security functionality from non-security functionality via separate databases or schemas. Database objects or code implementing security functionality should not be commingled with objects or code implementing application logic. When security and non-security functionality is commingled, users who have access to non-security functionality may be able to access security functionality.
Check Text: Check DBMS settings to determine whether objects or code implementing security functionality are located in a separate security domain, such as a separate database or schema created specifically for security functionality. If security related database objects or code are not kept separate, this is a finding.
Fix Text: Locate security related database objects and code in a separate database, schema, or other separate security domain from database objects and code implementing application logic.
SQL Server stored its security information (Logins, passwords, etc.) in the master database as well as some additional permissions in each user created database. By storing the primary information in the master database, the requirements to separate the security code from application code, which tends to reside in user defined databases, is met. You will need to double check that any custom applications are following the same sort of logic for storing their security information if not using SQL Server’s native security features.