Dac Controls

Published
Length
3 min read

Luis Felipe Dias

All posts

You set up dac controls by assigning resource ownership so owners grant access rights. In discretionary access control, the data owner decides who can read or write files. Engineering teams often use these rules to share folders, tables, and cloud buckets fast. Still, wide owner permissions can create huge security gaps across your whole system. When any user can pass rights to others, tracking who has access becomes hard. How dac controls work in modern systems Discretionary access control u

GCP VPC Service Controls: the complete guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free white paper. No spam. Unsubscribe anytime.

You set up dac controls by assigning resource ownership so owners grant access rights. In discretionary access control, the data owner decides who can read or write files. Engineering teams often use these rules to share folders, tables, and cloud buckets fast. Still, wide owner permissions can create huge security gaps across your whole system. When any user can pass rights to others, tracking who has access becomes hard.

How dac controls work in modern systems

Discretionary access control uses access lists tied to every single file or database table. Each object has an owner who controls the permission list for that specific item. The owner adds users or groups to the list and picks their allowed actions. For example, an owner can give one team read rights and another write rights. Operating systems and SQL databases use this model as their base permission setup.

When a user tries to open a file, the system checks the list. It looks for a match between the user identity and the listed permission rules. If a match exists, the system lets the user run the requested action. In many setups, owners can also pass their grant power to other users. This means a second user can hand out read or write rights to strangers. Without strict checks, permissions spread across teams without central review or clear logs.

What native permission lists solve and what they miss

Native owner lists make file sharing fast for small teams and simple projects. Developers do not need to wait for central admins to approve every new folder. Project leads can grant read access to new team members in a few seconds. This setup works well when data is not sensitive and teams stay small.

Still, native lists fail when you need strict rules for production data and systems. First, owner permissions decide who logs in, not what commands do in flight. Once a user has write rights, they can drop tables or delete key records. Second, native lists do not mask sensitive fields like emails, phone numbers, or card numbers. Anyone with read access sees the full table, including private customer national IDs. Third, shared static keys bypass user lists and hide who ran a bad query.

GCP VPC Service Controls: architecture patterns and best practices

Continue reading? Get the full guide.

Free. No spam. Unsubscribe anytime.

How to tighten owner permissions across your stack

Start by removing broad group permissions on all production databases and file shares. Give resource ownership to system accounts instead of regular user accounts whenever you can. This step stops developers from passing out read or write rights on their own. Next, audit your access lists every month to find and remove old user entries. Pair your base lists with role rules so users only get what they need.

Even with clean lists, you still need control over live queries and commands. You must check each action at runtime and mask fields like card numbers in results. Rewriting matched fields in query results protects private data while letting engineers fix bugs.

Govern statements and responses across databases and APIs

Good config and scoped roles are needed setup. They do not check single queries in flight or mask sensitive fields in returned rows. Across Postgres, MySQL, SQL Server, MongoDB, ClickHouse, Kubernetes APIs, SSH, and internal HTTP endpoints, hoop.dev sits inline in the protocol beside each supported service as an open-source proxy, a sidecar for your database or API. For every query or command an AI agent or engineer runs against production, hoop.dev decides to pass, mask, block, or hold it for human approval.

First, hoop.dev guardrails block banned queries before they run or hold risky ones for review, and hoop.dev data masking rewrites matched sensitive values in responses in memory. Furthermore, hoop.dev holds SOC 2 Type II and is open source on GitHub.

Frequently asked questions

What is the main difference between DAC and MAC?

In DAC, the resource owner decides who gets access to their files or tables. In mandatory access control, a central admin sets strict system rules that owners cannot change.

Why do audits fail when teams rely only on owner access lists?

Owners can pass permissions to other users without telling the central security team. Over time, too many people gain permanent access, and no one tracks the changes.

Can discretionary access lists hide sensitive columns in a database query?

No, standard access lists only allow or block access to the whole object. To hide emails or phone numbers in results, you need dynamic data masking at runtime.

Save the open-source gateway.

hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.