MySQL

How to Grant Only SELECT (Read-Only) Access to a User

Grant SELECT-only read access to a MySQL user on Nobregas Panel. Perfect for reporting tools, dashboards, and team members who view data.

3 min read 9 views Updated Mar 17, 2026

Read-only database access is essential for reporting tools, analytics dashboards, and team members who need to view data without the ability to modify it. The Nobregas MySQL Panel makes it easy to create a user with only SELECT privileges — they can read everything but change nothing.

When to Use Read-Only Access

Grant SELECT-only access when:

  • A reporting tool or dashboard needs to query the database.
  • A team member needs to view data but should not modify it.
  • A third-party integration only needs to read information.
  • You want a safe exploration user for testing queries without risk.
  • You follow the principle of least privilege for enhanced security.

Method 1: During User Creation

  1. Log in at mysql.nobregas.org.
  2. Go to Database Users > click Create User.
  3. Enter the username (e.g., readonly or reports).
  4. Set a strong password (use the generator button).
  5. Set host to localhost (or a specific IP for remote access).
  6. Select the database from the Grant to Database dropdown.
  7. The Privileges section appears with ALL PRIVILEGES checked.
  8. Uncheck the ALL PRIVILEGES checkbox.
  9. The individual privilege checkboxes appear.
  10. Check only SELECT under the Data category.
  11. Leave all other checkboxes unchecked.
  12. Click Create User.

The user now has read-only access — they can run SELECT queries but cannot INSERT, UPDATE, DELETE, or modify the database structure.

Method 2: Via Manage (Existing User)

If you have an existing user and want to add read-only access to a new database:

  1. Go to Database Users and click Manage on the user.
  2. In the Add Database Access section, select the database.
  3. Uncheck ALL PRIVILEGES.
  4. Check only SELECT.
  5. Click Add Grant.

Method 3: Downgrading Existing Privileges

If a user currently has ALL PRIVILEGES and you want to restrict them to read-only:

  1. Click Manage on the user.
  2. Find the database in Current Grants.
  3. Click Edit on that grant.
  4. Uncheck ALL PRIVILEGES.
  5. Check only SELECT.
  6. Click Save Changes.

The user's privileges are immediately downgraded. They can still connect but can only read data.

What a SELECT-Only User Can Do

  • Run SELECT queries to read data from any table in the granted database.
  • Use SHOW TABLES, DESCRIBE, and EXPLAIN statements.
  • Join tables and use aggregate functions (COUNT, SUM, AVG, etc.).

What a SELECT-Only User Cannot Do

  • Insert new rows (INSERT)
  • Update existing rows (UPDATE)
  • Delete rows (DELETE)
  • Create, alter, or drop tables
  • Create views, routines, or triggers
  • Modify the database in any way

Verifying Read-Only Access

After creating or updating the user, check the Database Users list. The database column shows a blue 1 privs badge, indicating only one privilege (SELECT) is granted. Click Manage to verify it is SELECT.

Pro Tip: Read-Only for Multiple Databases

You can grant SELECT-only access to multiple databases for the same user. Use the Manage modal to add each database individually with only SELECT checked. This creates a single reporting user that can query across several databases safely.

Was this article helpful?