07 May, 2013

EXECUTE permission was denied on the object 'proc_putObject', database 'SharePoint_Config', schema 'dbo'


Problem Description:
 While I am deploying my solution in to SharePoint, it's throwing an exception as follows:

Error Message:
EXECUTE permission was denied on the object 'proc_putObject', database 'SharePoint_Config', schema 'dbo'

Logs analysis:
The EXECUTE permission was denied on the object 'proc_putObject', database 'SharePoint_Config', schema 'dbo'.   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Microsoft.SharePoint.Utilities.SqlSession.ExecuteNonQuery(SqlCommand command)
   at Microsoft.SharePoint.Administration.SPConfigurationDatabase.StoreObject(SPPersistedObject obj, Boolean storeClassIfNecessary, Boolean ensure)
   at Microsoft.SharePoint.Administration.SPConfigurationDatabase.PutObject(SPPersistedObject obj, Boolean ensure)
   at Microsoft.SharePoint.Administration.SPPersistedObject.Update()

Root cause: Permissions

This error appears to be an issue with the permissions to the SharePoint configuration database.The general recommendation I found was to ensure that the application pool identity of the web application has sufficient permissions on the config database.

Resolution:
Million thanks to Microsoft's Team who has created this article:

Details Steps:
-In order to resolve the issue, I provided Execute permission to the database role “WSS_Content_Application_Pools” into the stored procedure “proc_putObject”. I performed the following steps to do this.
-In the database server, expand SharePoint Config database and naviage to Programmability/Stored Procedures/dbo.proc_putObject using SQL Server Management Studio.
-Right click on the above stored procedure and select Properties.
-On the popup screen, select Permissions on the left and click Search button.
-On the new popup screen, click Search, select [WSS_Content_Application_Pools] database role and click OK.
-Click OK again.
-On the first popup screen, select the role, check Execute permission and click OK.

If you have any queries/questions then please let me know, thank you.