The definition of the stored procedure should not end with and END. If you define your procedure for example:
CREATE PROCEDURE MySP AS
SELECT field1, field2 FROM table;
GO
GRANT EXECUTE ON MySP TO user1;
... then SQL Server will create a procedure that returns a result set, and grant permissions to execute this stored procedure on user1.
If you are doing something like this:
CREATE PROCEDURE MySP AS
SELECT field1, field2 FROM table;
GRANT EXECUTE ON MySP TO user1;
... then SQL Server will create a procedure in which it returns the result set and grants permission to execute each time this stored procedure is executed. In other words, GRANTincluded in the definition of a stored procedure. Probably not what you wanted.
OperatorA GO SQL Server. SQL Server " , ". ; .