squirrelworks

Systems Architecture > Identity & Access Management

IAM Data Modeling & Relational Governance Architecture

How do relational database concepts like primary keys, foreign keys, and junction tables translate into real-world Active Directory permissions? While host APP1 maintains a streamlined physical database (hr_system.db), enterprise identity governance platforms model access across a complete relational RBAC schema. This companion guide breaks down the full data architecture bridging database tables to Active Directory objects.

Relational Modeling Junction Tables AD Translation Layer

1. The Complete Enterprise RBAC Entity Model

Enterprise Identity Governance and Administration (IGA) platforms rely on normalized relational schemas to enforce the Principle of Least Privilege. Decoupling identities from raw permissions using intermediate roles eliminates hardcoded access and prevents permission bloat.

Enterprise Identity Governance — Full ER Diagram
erDiagram employees { int employee_id PK string first_name string last_name string user_principal_name UK string department string job_title string status "Active | Transferred | Terminated" } roles { int role_id PK string role_name "SG_IT_Dept | SG_Cybersecurity_Dept | SG_SOC_Analysts" string description } permissions { int permission_id PK string permission_name "READ_AD | WRITE_AD | SOD_FINANCIAL_APPROVE" string resource_target } employee_roles { int employee_id FK int role_id FK datetime assigned_at } role_permissions { int role_id FK int permission_id FK } jml_sync_log { int log_id PK int employee_id FK string action_type "JOINER | MOVER | LEAVER" string status "SUCCESS | FAILED" string details datetime timestamp } employees ||--o{ employee_roles : "holds entitlements" roles ||--o{ employee_roles : "assigned to" roles ||--o{ role_permissions : "grants" permissions ||--o{ role_permissions : "mapped to" employees ||--o{ jml_sync_log : "generates audit trail"

2. Mapping Relational Tables to Active Directory Construct

Relational SQL databases store data in normalized rows and columns, whereas Active Directory Domain Services (AD DS) stores hierarchical LDAP objects. The synchronization engine on host APP1 acts as a translation layer converting database states into directory attributes.

Relational SQL Concept Active Directory Structure PowerShell Translation Mechanism
employees Table User Objects (CN=Marcus Vance) New-ADUser / Set-ADUser targeting OU=Employees
roles Table Global Security Groups (SG_IT_Dept) Hashtable mapping ($deptGroupMap) matching department strings
employee_roles Junction MemberOf / Members Attributes Add-ADGroupMember & Remove-ADPrincipalGroupMembership
permissions Table NTFS ACLs / Delegated AD Rights Security principal groups assigned to file shares or OUs

Junction Table Mechanics

Junction tables (employee_roles and role_permissions) resolve Many-to-Many relationships. Deleting a single row in a junction table revokes all associated downstream access without altering the core employee or role definitions.

Dynamic Access Evaluation

In Invoke-HRIdentitySync.ps1, the script evaluates employee record properties dynamically. If job_title -like "*SOC Analyst*", PowerShell dynamically binds the user to SG_SOC_Analysts, mimicking a database join query.

3. Compliance Auditing & Anomaly Queries

Structuring identity access as a relational model enables security analysts to run SQL compliance queries to detect access anomalies, orphaned accounts, and Segregation of Duties (SoD) violations.

1. Segregation of Duties (SoD) Conflict Query

Identifies users who hold two mutually exclusive high-privilege permissions simultaneously across junction tables:

-- Detect users holding both Financial Approval and Vendor Creation permissions
SELECT e.employee_id, e.first_name, e.last_name, COUNT(DISTINCT p.permission_name) AS conflict_count
FROM employees e
JOIN employee_roles er ON e.employee_id = er.employee_id
JOIN role_permissions rp ON er.role_id = rp.role_id
JOIN permissions p ON rp.permission_id = p.permission_id
WHERE p.permission_name IN ('FINANCIAL_APPROVAL', 'VENDOR_CREATION')
GROUP BY e.employee_id
HAVING conflict_count > 1;
Tech Fact Icon
Governance Takeaway

Relational identity data modeling allows security operations teams to certify access, perform automated entitlement reviews, and audit privilege changes using standard SQL queries across decoupled tables.



Accessibility
 --overview

API
 --REST best practices
 --REST demo
 --REST vs RPC
 --Wikipedia API

Blockchain
 --overview

Blog
 --The 'Brute Force' Mistake
 --The Bezosian Protocol: Eliminating Learned Helplessness
 --The Humility Protocol: Reality Over Reputation
 --The Jobsian Protocol: Systems Analysis as a War on Entropy
 --The Jordan Framework: Engineering a Competitive Edge
 --Time Management as an Operational System: The Tracy Framework
 --Tracy on Goals: Vector Alignment & Execution

Cloud
 --AWS overview

CSS/HTML
 --Admissions Portal Simulation Lab
 --Bootstrap carousel
 --Grid demo
 --markdown demo

DevOps
 --Agile Principles
 --DevOps overview
 --Drupal, containerized
 --Prometheus & Grafana
 --RKE2: Deploying the Rancher Kubernetes Engine

Encoding
 --Overview

Ergonomics
 --Desk configuration
 --Device fleet
 --Input device array
 --keystroke mechanics
 --Phones & RSI

ERP
 --Anthology overview
 --Ellucian Banner
 --Higher Ed ERP Simulation Lab
 --PeopleSoft Campus Solutions
 --PESC standards
 --Slate data model

Git
 --Authoring & Deploying the Post-Receive Hook
 --Pipeline Optimization, Web-Root Migration, & Dependency Remediation
 --syntax overview
 --troubleshooting libcrypto

Hardware
 --Device fleet
 --Electricity fundamentals
 --Homelab diagram

Identity & Access
 --Architecting the Authoritative HR Identity Database Engine
 --Automating Enterprise IAM Lifecycles
 --Data Modeling
 --Deploying Entra Connect
 --Foundations
 --OIDC Integration
 --Provisioning Okta Dev Tenant

Java
 --Fundamentals

Javascript
 --Advanced Interaction: jQuery & UI Frameworks
 --input prompt demo
 --misc demo
 --Time and Date functions
 --Vue demo

Linux
 --Auditing the live interface state using ethtool
 --grep demo
 --HCI and Proxmox
 --Persistent Infrastructure Telemetry: TMUX
 --Proxmox install
 --xammp ftp server

Mail flow
 --DKIM, SPF, DMARC
 --MAPI

Microsoft
 --AZ-800: Administering Windows Server Hybrid Core Infrastructure
 --BAT scripting
 --Group Policy
 --IIS
 --robocopy
 --Server 2022 setup - Virtualbox

Misc
 --Applications
 --Computer Science Foundations
 --Field Notes: RainPoint Bluetooth Hose Timer
 --Protocols, TLS & Distributed Scale
 --regex
 --Resources
 --Runtimes, ASTs & Data Structures
 --Sustainable Computing
 --Terminology
 --Tribute to Computer Scientists

Networks
 --BGP Peering & Security Hardening Lab
 --CCNA Lammle Study Guide
 --Cisco 1921/K9 router
 --NGFW vs. Legacy
 --routing protocols
 --throughput calculations

PHP/SQL
 --Cookies
 --database interaction
 --demo, OSI Layers quiz
 --Foreign key constraint demo
 --fundamentals
 --MySQL and PHPmyAdmin setup
 --pagination
 --security
 --session variables
 --SQL fundamentals
 --structures
 --Tables display

Python
 --fundamentals

Security
 --Kerberos: Protocol Architecture
 --NTP Overview
 --Overview- GRC (Governance, Risk, and Compliance)
 --Security Blog
 --SSH fundamentals

Serialization
 --JSON demo
 --YAML demo