|
Relational NT
A relational database kernel shaped around NT-style object management.
|
Represents authorized access to an object in the registry. More...
#include <HandlerManager.h>
Public Attributes | |
| ObjectManager::registry * | object = nullptr |
| Object referenced by this handle. | |
| void * | connection_context = nullptr |
| Connection metadata associated with the authorized access. | |
| std::set< AUTH_CLAIM > | granted_access |
| Access claims granted to this handle at open time. | |
Represents authorized access to an object in the registry.
The access mask is evaluated once during Open and cached here for the lifetime of the handle. Subsequent operations check granted_access rather than re-evaluating the security descriptor on every call. This resolves the performance question in PermissionsManager about when to check permissions.
Because storage is append-only, a WRITE claim does not mean mutating an existing tuple in-place. It means the session is authorized to commit a new snapshot version of the relation. Two sessions holding WRITE handles on the same relation always produce independent snapshots — there is no data-level conflict.
| std::set<AUTH_CLAIM> nt::HandlerManager::handle::granted_access |
Access claims granted to this handle at open time.
Cached here so that per-operation checks read from the handle rather than re-evaluating the security descriptor.