Data lake and analytics · AutessaDB
Security on every query
Every query on the AutessaDB data lake passes through the same security as the rest of AutessaDB. Sharing decides which tables a caller can query, row rules filter what each person's queries see, hidden columns cannot be selected, and masked columns return masked values, whether the query comes from a person, an agent, a script, an app or an API key.
-- the problem
Analytics copies usually leave permissions behind
Exporting data to a separate warehouse means rebuilding who-sees-what there, or giving everyone everything. In AutessaDB the data lake is the same database, so the rules you wrote once apply to every SQL query, and sensitive values can still be counted and grouped without being shown.
What you get
- READ to describe, preview and query; WRITE to load; ADMIN for schema, semantic layer, sharing and delete.
- A join needs READ on every table, and a table you cannot read behaves as if it does not exist.
- Row rules filter query results per person, and hidden columns cannot be selected.
- Masked columns are stored encrypted and still work for =, IN, GROUP BY, DISTINCT, COUNT(DISTINCT ...), MIN/MAX, ORDER BY and joins with other masked columns.
- Masked values appear only to someone allowed to see them in every table the query read, and every reveal is recorded in the access log.
- An API key never sees more than its owner, and agents see only what their identity may see.
- Query jobs and results are private to whoever ran them and company Admins.
- Downloads contain mask text unless you choose with values shown.
-- how it works
How does security on every query work in AutessaDB?
Share
Grant READ, WRITE or ADMIN to people, teams, roles or the company.
Add a role
Row rules and column rules apply to SQL exactly as they do to the grid.
Mask
Mark sensitive text columns Masked when you create them.
Query
Every query, from any caller, is filtered and masked for that caller.
-- every option
Masked columns in SQL
| option | what it does |
|---|---|
| Works | =, <>, IN, IS NULL, GROUP BY, DISTINCT, COUNT(DISTINCT ...), MIN/MAX, ORDER BY and joins with other masked columns. |
| Sorting | Follows an internal code rather than the alphabet. |
| Not available | LIKE, ranges and other functions on masked values. |
| Visible role | Reveal values one at a time or with Show values; every reveal is logged. |
| Masked role | Always sees the mask: fully redacted, last four characters, or a consistent code. |
| Hidden role | The column is not there at all. |
-- example
Full reference in the AutessaDB CLI docs and the API reference.
-- permissions
Who can do what?
| access | can |
|---|---|
| Table owners and admins | Always reveal masked values. |
| READ | Query, seeing only the rows and columns their roles allow. |
| Company Admins | See every query job and its result. |
-- faq
Questions about security on every query
Does row-level security apply to SQL?
Yes. Hidden columns cannot be selected, masked columns return masked values, and row rules filter what each person's queries see.
Can I group or join on a masked column?
Yes. Masked columns support equality, GROUP BY, DISTINCT counts, MIN/MAX, ORDER BY and joins with other masked columns, without showing the values.
Can an API key or agent see more than its owner?
No. Every caller sees only what the person or key it acts as could see.
100% customizable, code and all
Make AutessaDB fully your own.
Use it out of the box, then change anything. Ask Autobot, Autessa’s AI builder, for a new field, screen, report, workflow or agent and it builds it into your copy of the app. Or open the code and edit it yourself. Nothing is locked: the app, its data and its code are yours.
Start free and make it yours