¿Cómo puede verificar si un usuario puede ejecutar un procedimiento almacenado en el servidor MS SQL?Servidor MS SQL: verifique si un usuario puede ejecutar un procedimiento almacenado
puedo ver si el usuario ha explícita permisos de ejecución mediante la conexión a la base de datos maestra y ejecución:
databasename..sp_helpprotect 'storedProcedureName', 'username'
sin embargo, si el usuario es un miembro de una función que tiene permisos de ejecución sp_helprotect no me ayudará .
Idealmente me gustaría ser capaz de llamar algo así como
databasename..sp_canexecute 'storedProcedureName', 'username'
que devolver un bool.
Además, si usted está utilizando SQL Server 2005 o superior y el permiso se asigna al esquema o la base de datos (EJECUTAR puede ser ahora), sp_helprotect no reportará eso. El procedimiento almacenado se incluye únicamente para compatibilidad con versiones anteriores y reporta permisos basados en lo que estaba en SQL Server 2000. –