How to give each person their own permissions in a small database
Real permissions are enforced where the records are kept: in a database server, each person has an account and a role that grants only what they need. A database that is a file on a shared drive can only be guarded by the program that opens it, and anyone who copies the file can read it.
27 October 2026 · 5 min read
Two very different kinds of protection
Permissions in a database server are enforced by the server: whatever program a person uses, the server refuses what their account may not do. Permissions in a database file are enforced by the program that opens it, and only while that program is the one opening it. Both are useful, but only the first holds against someone who wants in.
Microsoft Access
Older Access databases (.mdb) had user-level security, with users and groups kept in a separate workgroup file. The .accdb format that Access has used since 2007 dropped it. What remains:
- Encrypt with Password, which encrypts the whole file under one password. Everyone who has the password sees everything.
- A split database: the tables in one file on a shared folder, the forms and reports in a copy on each computer. Windows folder permissions decide who can open the tables file at all, but not what they see inside it.
- Forms that hide things, which keep honest people on the right path and stop nobody else.
For real per-person rights, Microsoft’s own advice is to move the tables to a server, such as SQL Server, and link to them.
In a database server
PostgreSQL and MySQL both give each person an account and grant rights table by table:
- In PostgreSQL, make a role for each kind of person and grant it what it needs, such as
GRANT SELECT ON products TO counter_staff;, then make each person a member of their role. Row-level security goes further: a policy such as “only rows this person added” is checked by the server on every query. - In MySQL and MariaDB,
CREATE USERandGRANTdo the same per table, and per column too. There is no row-level security built in; a view showing only the right rows, granted instead of the table, does the job.
A plan that fits a small business
- An administrator, one or two people, who may change anything, including the design.
- A manager who sees and changes everything but the design and the staff records.
- Staff who add sales and change their own, and read the products.
- Read only for an accountant or an auditor.
Start from nothing and grant what each role needs, rather than starting from everything and taking things away. Before relying on a role, sign in as it, or view the database as it, and try what it should not be able to do.
Keep a record of who changed what
Permissions stop mistakes before they happen; a record of who added, changed and deleted each record finds the ones that happen anyway. A server can keep one with triggers or its logs. Whatever you use, make sure the record cannot be edited by the people it records.
Our own product, disclosed
Where our own software comes into this
We make Rutba Office, a free desktop suite for Windows. Its Data Files app has Protect this database: the person who chooses it becomes the Admin and adds people, each with a role and a password. A role can find each table hidden, read only or open to adding, changing and deleting, can be limited to the records its person added, and can have fields, queries, forms and reports hidden. See as shows the database as a role sees it, and who added, changed and deleted each record is kept.
This is the second kind of protection above, and Data Files says so: the file is not encrypted, and anyone who copies it can read it with another program. For records that must stay secret from someone who can copy the file, Data Files links tables to PostgreSQL, MySQL or MariaDB, where the server’s own accounts apply.
Related
How to work on PostgreSQL or MySQL tables from a desktop database
Keep the records in the server and point a desktop program at its tables. Access does it with linked tables through an ODBC driver, LibreOffice Base connects directly, and tools such as DBeaver edit tables as a grid. Give the program an account of its own with only the rights it needs.
What a password on a Word or Excel file actually protects
Office offers two kinds of password, and they are not the same thing. One encrypts the file so nobody can read it without the password. The other only asks the program to stop people editing, and anyone with the file can take it off. Knowing which one you set matters more than how long the password is.
A free database for a small business, and how to tell you need one
You need a database rather than a spreadsheet once the same customer, product or job is typed into more than one place. Microsoft Access, LibreOffice Base and the SQLite tools keep the records on your own computer for little or nothing; online tools such as Airtable keep them on their servers.
Thirteen apps, one free download
No account, no telemetry, and it works with the network switched off.