Pregunta

Siempre me he preguntado por qué la lista de roles de bases de datos (db_datareader, db_datawriter, db_ddladmin, etc) nunca incluyó un db_storedprocedureexecutor. Los otros tienen sentido, pero parece poder otorgar la capacidad de ejecutar todos los procesos almacenados a un usuario en particular (sin otorgarles db_owner, que es la única otra forma de lograr lo mismo) sería algo útil.

Por ejemplo, digamos que quiero dar a todos mis desarrolladores los derechos de ejecutar procedimientos almacenados, sin dejar que ejecute ningún DDL, sin otorgar explícitamente ejecutar cada procedimiento almacenado (y luego recordar agregar los nuevos cuando se despliegan SPS adicionales) , no hay forma de hacer esto (sé que SPS puede contener DDL, por lo que aún se les puede permitir el acceso indirectamente a DDL de esta manera).

Si tengo una cuenta de servicio de solicitud y una serie de procedimientos almacenados que acompañan a mi solicitud, tengo que otorgar derechos explícitamente a cada SP (ya que no quiero otorgar mi cuenta de servicio de solicitud DBO), mientras que puedo usar un rol para permitirles actualizar/eliminar todo lo que quieran.

Si bien inicialmente parecía obvio, ahora no estoy seguro de por qué falta este rol en el servidor de la base de datos: ¿puede alguien ofrecer una explicación de por qué esta es una idea terrible (como supongo que es, o ya existiría)?

EDITAR:

Parece que no soy el único con esta expectativa, y ha funcionado con un puñado de T-SQL (Parece que puede otorgar una ejecución general de ejecución correcta, lo que no sabía que podría hacer), lo que me deja preguntándome por qué no es estándar.

¿Fue útil?

Solución

Si usa esquemas, solo tiene que GRANT EXECUTE ON SCHEMA::storedprocschema

p.ej CREATE PROC storedprocschema.DoStuff ...

En cuanto a por qué, no tengo idea ...

Otros consejos

Porque si puede ejecutar todos los procedimientos almacenados, puede ejecutar sp_addrolemember, y puedes hacer todo lo que un database_owner pueden.

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