Skip to content

[Feature Request] Resource-Scoped Permissions (Server & Database Level) #257

@kayvanaarssen

Description

@kayvanaarssen

Summary

We are a hosting company managing approximately 40 servers — a mix of dedicated VPS environments and shared servers — each hosting multiple client databases. We would love to use Databasement as a single, central backup management platform for all of them, but the current global role system (Admin / Member / Viewer) makes this impossible without spinning up a separate instance per server or per client.

Running 40+ isolated instances is operationally unscalable for us, and defeats the purpose of having a central overview.


The Problem

Currently, roles are applied globally. Any user added to Databasement — even as a Viewer — can see all registered servers and all snapshots across every client. For a hosting company this is a serious confidentiality issue: clients must never see each other's servers, databases, or backup snapshots.

This affects two distinct scenarios we deal with daily:

1. Dedicated VPS / server clients
Some clients have their own dedicated server managed by us. We want to give them access to their server only — to view backup status, download snapshots, or trigger a restore — without exposing any other client's infrastructure.

2. Shared server clients
Many clients share a server with other clients (shared hosting). Here we need even finer control: a client should only see and interact with their specific databases on that shared server — not the other tenants' databases sitting on the same host.


Requested Feature: Resource-Scoped Permissions

We'd like to see permissions that can be granted at two levels:

Level 1 — Server-scoped access

Assign a user access to one or more specific database servers. They would only see servers explicitly granted to them, and only snapshots produced from those servers.

Example use case: dedicated VPS client logs in and sees only their server.

Level 2 — Database-scoped access (ideal)

Within a server, restrict a user's visibility to one or more specific databases. They would only see snapshots for those databases, and could only download or restore those.

Example use case: shared hosting client logs in, sees only client_db_wordpress and client_db_shop on shared-server-nl-01, even though 30 other databases exist on that same host.


Proposed Permission Model (suggestion)

This doesn't need to replace the existing global roles — it could complement them:

  • Global roles (Admin / Member / Viewer) remain as-is for internal team members
  • A new resource grant system allows assigning users scoped access:
    • user → server → can see/interact with that server
    • user → server → database(s) → further restricted to specific databases
  • The scoped role determines what actions they can take within that scope (e.g. view-only vs. download vs. restore)

Why This Matters

We currently manage ~40 servers and are growing quickly. Without this feature, the only safe option is running a separate Databasement instance per client or per server — making central monitoring, updates, and operations a nightmare.

With resource-scoped permissions, Databasement becomes a genuinely viable multi-tenant backup management platform for hosting companies and MSPs. We suspect we are not the only hosting provider interested in this.

Happy to discuss the use case further or provide feedback on any proposed implementation approach. Thanks for building this — it's a great project.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions