[dba-SQLServer] Execute permission denied

jwcolby jwcolby at colbyconsulting.com
Sat Jun 18 18:50:51 CDT 2011


Jim,

In fact I had done all of that, though I made the SP directly in SQL Server.  It turned out to be a 
permissions issue.  There were no users specifically allowed to execute the sp.  Once I did that it 
looks just like a query in Access.  I will need to do things like rebuild the pass through queries 
when a new user logs in since each user has one or more specific camp (s)he visits.

I do so using code similar to yours below.

John W. Colby
www.ColbyConsulting.com

On 6/18/2011 7:38 PM, Jim Lawrence wrote:
> Hi John:
>
> It can not be too different from the standard method:
>
> /*Stored Procedure
> CREATE PROC dbo.RECompanyConfigurationGET
>    @intCompanyCode int
> AS
>    SELECT DISTINCT CompanyConfig.CompanyCode, CasinoCompany.CompanyName,
> 	CompanyConfig.InitialLetterLocation,
> CompanyConfig.FollowupLetterLocation, CompanyConfig.ExpiryLetterLocation
> 	FROM CasinoCompany INNER JOIN CompanyConfig ON
> CasinoCompany.CompanyCode = CompanyConfig.CompanyCode
> 	WHERE CompanyConfig.CompanyCode = @intCompanyCode
> 	ORDER BY CasinoCompany.CompanyName;
> GO
>
> ------------------------------------------------
>
> 'Calling code from Access
> Dim rs1 As ADODB.Recordset
> Dim objCmd As ADODB.Command
>
> Set rs1 = New ADODB.Recordset
> Set objCmd = New ADODB.Command
>
> With objCmd
>    .ActiveConnection = gstrConnection 'Connection string
>    .CommandText = "RECompanyConfigurationGET"
>    .CommandType = adCmdStoredProc
>    .Parameters.Append .CreateParameter("@intCompanyCode", adInteger,
> adParamInput, , typCmpConf.CompanyCode)
> End With
>
> With rs1
>    .CursorLocation = adUseClient
>    .Open objCmd, , adOpenStatic, adLockReadOnly
>    If .BOF = False Or .EOF = False Then
>      .MoveLast
>      ...
>    End if
> End With
>
> Jim
>
>
> -----Original Message-----
> From: dba-sqlserver-bounces at databaseadvisors.com
> [mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of jwcolby
> Sent: Friday, June 17, 2011 7:51 PM
> To: Access Developers discussion and problem solving; Sqlserver-Dba
> Subject: [dba-SQLServer] Execute permission denied
>
> I am trying to figure out how to use stored procedures to return recordsets
> to Access.  I created a
> stored procedure that accepts a parameter, the stored procedure pulls a
> recordset and if used like so:
>
> exec usp_MySP 1
>
> returns a recordset to the query window in SQL Server.
>
> So, now how to get it to work in Access.  I thought I was going to create a
> pass through query
> dynamically, save it and then "open" the query to get the recordset.
>
> The query is a passthrough query
>
> usp_InmatesForVolunteers 1
>
> The ODBC connect string is:
>
> ODBC;DRIVER=SQL
> Server;UID=MyUser;PWD=MyPassword;SERVER=5.58.170.179;DATABASE=InmateCheckout
> ;
>
> All of this (except for the database part) comes directly out of a DSN file
> which works to link
> tables and views into Access.  Tested and working for that purpose.
>
> So the passthrough query fails.  Error:
>
> [Microsoft][ODBC Sql Server Driver][SQL Server]The execute permission was
> denied on the object
> 'usp_InmatesForVolunteers', database 'InmateCheckout', schema 'dbo'. (#229)
>
> Interestingly if I remove the database part of the connection string it
> returns exactly the same
> error message, even mentioning that database.  Thus the user itself being
> mapped to that database
> seems to be working as well.
>
> As I said, this all works for linking SQL Server tables and views, just not
> executing the sp.
>
> Any ideas?
>



More information about the dba-SQLServer mailing list