An autonomous agent that holds a standing database credential is a key nobody ever asks back. It connects at 3am with the same reach it had at noon, and when it is compromised or simply confused, the blast radius is everything that credential could ever touch. The question underneath most AI agent access decisions is narrow: just-in-time access or standing access, and which one actually controls the risk. The honest answer is that they are not equivalent options, they are different risk postures, and one of them stops being defensible the moment the actor is a machine.
What each model means
Standing access is the default almost everyone starts with. An identity is granted a permission once, and it keeps that permission until someone remembers to revoke it. Just-in-time access inverts the lifecycle: the identity has no standing reach, requests access scoped to a task, and that grant expires when the task ends. One leaves a door open and trusts you to close it. The other opens the door for the duration of the work and shuts it automatically.
When standing access is enough
Standing access is tolerable in a narrow band: a low-sensitivity system, a small set of human operators you can name, and a revocation process that actually runs. Even there it accrues risk, because standing grants are the ones that quietly outlive the person or service they were issued for. The credential survives the offboarding, the project, the reason it existed. For a human team with discipline, that risk is manageable. The trouble starts when the holder is not a person.
Why standing access fails for AI agents
An autonomous agent multiplies every weakness of standing access. It runs continuously, so the window of exposure is always open. It acts on inputs you do not fully control, so a steered prompt can turn a standing grant into an action nobody approved. And it scales: ten agents with standing credentials are ten permanent reach points, none of which will ever ask to have access taken away. Just-in-time access closes the window by default. The agent carries no permission at rest, so a compromised agent has nothing standing to abuse, and every grant is tied to a task and a clock.
The architectural point
Choosing just-in-time access only matters if the expiry is enforced somewhere the agent cannot reach. A grant the agent can extend itself, or a timeout that lives in the agent's own code, is standing access wearing a costume. The control has to sit on the access path, between the identity and the system, where the agent has no dial to turn. That is the requirement, and it is why just-in-time access is an architecture question, not a policy setting.
