STIGQter STIGQter: STIG Summary: MariaDB Enterprise 10.x Security Technical Implementation Guide Version: 2 Release: 5 Benchmark Date: 01 Apr 2026:

MariaDB must enforce approved authorizations for logical access to information and system resources in accordance with applicable access control policies.

DISA Rule

SV-253668r1137654_rule

Vulnerability Number

V-253668

Group Title

SRG-APP-000033-DB-000084

Rule Version

MADB-10-000300

Severity

CAT I

CCI(s)

Weight

10

Fix Recommendation

Create and/or maintain documentation on the appropriate permissions on database objects for each kind (group role) of user.

Implement these permissions in the database and remove any permissions that exceed those documented.

The following are examples of how to use role privileges in MariaDB to enforce access controls. Run these as the database administrator. For a complete list of privileges, refer to the official documentation: https://mariadb.com/kb/en/grant/

#### Roles Example 1
The following example demonstrates how to create an admin role with SHUTDOWN privileges.

As the database administrator, run the following SQL:

MariaDB> CREATE ROLE admin;
MariaDB> GRANT SHUTDOWN ON *.* TO admin;

#### Roles Example 2
The following example demonstrates how to create a user make the user a member of the admin role.

As the database administrator, run the following SQL:

MariaDB> CREATE USER 'admin_user'@'host' IDENTIFIED VIA PAM;
MariaDB> GRANT admin TO 'admin_user'@'%';

#### Roles Example 3
The following demonstrates how to revoke privileges from a role using REVOKE.

As the database administrator, run the following SQL:

MariaDB> REVOKE admin FROM 'admin_user'@'host';

#### Roles Example 4
The following demonstrates how to modify privileges for a role using GRANT.

As the database administrator, run the following SQL:

MariaDB> GRANT PROCESS ON *.* TO admin;

The following are examples of how to use grant privileges in MariaDB to enforce access controls on objects.

#### Grant Example 1
The following example demonstrates how to grant INSERT on a table to a role.

As the database administrator, run the following SQL:

MariaDB> GRANT INSERT ON test.t1 TO admin;

#### Grant Example 2
The following example demonstrates how to grant ALL PRIVILEGES on a table to a role.

As the database administrator, run the following SQL:

MariaDB> GRANT ALL PRIVILEGES ON test.t1 TO admin;

#### Grant Example 3
The following example demonstrates how to grant a role to a role.

As the database administrator, run the following SQL:

MariaDB> CREATE ROLE admin_master;
MariaDB> GRANT admin TO admin_master;

#### Revoke Example 1
The following example demonstrates how to revoke access from a role.

As the database administrator, run the following SQL:

MariaDB> REVOKE PROCESS ON *.* FROM admin;

To change authentication requirements for the database, as the OS administrator, review the configuration file(s) in /etc/pam.conf or /etc/pam.d directory.

After changes to the configuration file(s) /etc/pam.conf or /etc/pam.d, reload the server:
# SYSTEMD SERVER ONLY
$ sudo systemctl reload mariadb
# INITD SERVER ONLY
$ sudo service mariadb reload

Check Contents

From the system security plan or equivalent documentation, determine the appropriate permissions on database objects for each kind (group role) of user. If this documentation is missing, this is a finding.

As the database administrator, check the privileges of all users and roles in the database.

Find all users:
MariaDB> SELECT user, host FROM mysql.user WHERE is_role = 'N';

Find all roles:
MariaDB> SELECT user FROM mysql.user WHERE is_role = 'Y';

For each user found, check grants:
MariaDB> SHOW GRANTS FOR 'username'@'host';

For each role found, check grants:
MariaDB> SHOW GRANTS FOR 'rolename';

Review all users and roles and their associated privileges. If the privileges of any users and/or roles exceed those documented, this is a finding.

As the database administrator, check the configured authentication settings:
MariaDB> SHOW PLUGINS;

To find users not using PAM plugin for authentication:
MariaDB> SELECT user, host, plugin FROM mysql.user WHERE plugin != 'pam';

If any users are returned, this is a finding.

Review all entries and their associated authentication methods. If any entries do not have their documented authentication requirements, this is a finding.

Vulnerability Number

V-253668

Documentable

False

Rule Version

MADB-10-000300

Severity Override Guidance

From the system security plan or equivalent documentation, determine the appropriate permissions on database objects for each kind (group role) of user. If this documentation is missing, this is a finding.

As the database administrator, check the privileges of all users and roles in the database.

Find all users:
MariaDB> SELECT user, host FROM mysql.user WHERE is_role = 'N';

Find all roles:
MariaDB> SELECT user FROM mysql.user WHERE is_role = 'Y';

For each user found, check grants:
MariaDB> SHOW GRANTS FOR 'username'@'host';

For each role found, check grants:
MariaDB> SHOW GRANTS FOR 'rolename';

Review all users and roles and their associated privileges. If the privileges of any users and/or roles exceed those documented, this is a finding.

As the database administrator, check the configured authentication settings:
MariaDB> SHOW PLUGINS;

To find users not using PAM plugin for authentication:
MariaDB> SELECT user, host, plugin FROM mysql.user WHERE plugin != 'pam';

If any users are returned, this is a finding.

Review all entries and their associated authentication methods. If any entries do not have their documented authentication requirements, this is a finding.

Check Content Reference

M

Target Key

5475