In attempting to create Report subscriptions in our new SharePoint 2013 production environment, we received and error:
The EXECUTE permission was denied on the object 'xp_sqlagent_notify', database 'mssqlsystemresource', schema 'sys'.
Initially I thought that we just needed our DBA to grant the reporting services execution account EXECUTE rights on the extended stored procedure noted. There was a little more to the solution.
The Reporting Services Execution Account needs to have access to the SQL Server Agent but the access is granted through the RSExec role. We noticed that this role existed on the reporting services databases but wasn't on any of the system databases (e.g. master, msdb). SharePoint 2013 makes this easy to resolve! You can download a script that incorporates the execution account, adds the roles, and grants all of the proper permissions.
Simply navigate to the Reporting Services Application in Central Admin and click on Provision Subscriptions and Alerts:
If you have database access, Open the file or Save it locally and send it to your DBA:
Run the script on your SharePoint database server:
After the script is run, the ability to create Reporting Services Subscriptions from SharePoint 2013 should work like a charm!
Note: If the reporting services managed account does not exist in all of your environments, you should download the script in each one (Stage, QA, Production, etc.) and run them separately.
The EXECUTE permission was denied on the object 'xp_sqlagent_notify', database 'mssqlsystemresource', schema 'sys'.
Initially I thought that we just needed our DBA to grant the reporting services execution account EXECUTE rights on the extended stored procedure noted. There was a little more to the solution.
The Reporting Services Execution Account needs to have access to the SQL Server Agent but the access is granted through the RSExec role. We noticed that this role existed on the reporting services databases but wasn't on any of the system databases (e.g. master, msdb). SharePoint 2013 makes this easy to resolve! You can download a script that incorporates the execution account, adds the roles, and grants all of the proper permissions.
Simply navigate to the Reporting Services Application in Central Admin and click on Provision Subscriptions and Alerts:
Click on the Download Script button:
If you have database access, Open the file or Save it locally and send it to your DBA:
Run the script on your SharePoint database server:
The script obtains the account using a user guid. You can verify that this account is your Reporting Services Execution Account by issuing a SELECT against the SUSER_SNAME function:
After the script is run, the ability to create Reporting Services Subscriptions from SharePoint 2013 should work like a charm!
Note: If the reporting services managed account does not exist in all of your environments, you should download the script in each one (Stage, QA, Production, etc.) and run them separately.