sql >> Base de Datos >  >> RDS >> Oracle

¿La mejor práctica de diseño de base de datos de permisos de roles de usuario?

Como escribió krokodilko en su comentario, depende del nivel de flexibilidad que necesite.
He implementado permisos basados ​​en roles para uno de mis clientes de la siguiente manera:

  1. Usuario (ID de usuario (PK), nombre de usuario (único), contraseña (salado y hash! ), nombre, apellido, teléfono, etc.')
  2. Rol (ID de rol (PK), nombre de rol (único), descripción de rol)
  3. Permiso (ID de permiso (PK), nombre de permiso (único)):las pestañas/pantallas/acciones van aquí
  4. Usuario a función (ID de usuario, ID de función):PK son ambas columnas combinadas
  5. De rol a permiso (ID de rol, ID de permiso) - PK es ambas columnas combinadas

Pero mi requisito era ser lo más flexible posible, y es un sistema que todavía está creciendo (6 años y contando).

Supongo que muchas aplicaciones pueden hacer que el usuario actúe como una relación de uno a muchos, en lugar de una relación de muchos a muchos como en mi caso, pero no me gustaría codificar permisos o roles para permisos en ninguna aplicación.

Explicación adicional:Diseño de base de datos de seguridad basado en roles en ¿Qué # sé?