Pregunta

Requisito previo :

Hay una aplicación cliente / servidor escrita en Delphi32. El RDBMS es SQL Server 2005. Una cierta funcionalidad de la aplicación requiere la creación / caída de desencadenantes (desde la aplicación que utiliza sentencias DDL ad hoc) en la base de datos de destino.

Problema :

Si un usuario pertenece a los roles sysadmin, no hay problema para crear / soltar disparadores. Sin embargo, esto se considera una función demasiado permisiva para un usuario de la aplicación.

Preguntas:

  • ¿Cuál es el rol mínimo estándar (es decir, el más restrictivo) de SQL Server que podría usarse para la creación / caída de desencadenantes?
  • ¿La creación de un rol personalizado, en lugar de utilizar los estándares, constituiría un enfoque más preciso para resolver este problema?
¿Fue útil?

Solución

Hay varias opciones según el alcance de la concesión (cualquier desencadenante en una base de datos, cualquiera en un esquema o una tabla específica).

Generalmente, los permisos necesarios para una operación SQL se documentan en la referencia SQL. P.ej. para CREATE TRIGGER en SQL 2008, consulte aquí (desplácese hacia abajo para " ; Permisos "), en este caso:

  

El desencadenador DML requiere ALTERAR la transmisión en la tabla o vista en la que se creará el desencadenador

Puede crear un rol con solo los permisos que desee y luego agregar usuarios / grupos a ese rol, de modo que el rol mínimo sea uno que cree con solo el acceso específico que desea permitir a sus miembros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top