• When you are able to grant permission, Am sure definitely the users part of developer would have db_owner privileges.

    I think there is limitation for the objects created under dbo schema when we grant execute privilege with 'with grant option' at database level not at object level.

    I tried to create objects under user defined schema and able to grant execute privilege on proc in user defined schema to other user.

    here are my test queries.

    -- log on with login X which has default schema as userdefined_schema

    create proc wgo_p1

    as

    begin

    select @@servername

    end

    grant execute on [userdefined_schema].[wgo_p1] to newuser

    -- sunccessful

    to confirm this I have created one more schema userdefined_schema_wgo with authorization to login/user Y

    create proc userdefined_schema_wgo.wgo_p1

    as

    begin

    select @@servername

    end

    grant execute on [userdefined_schema_wgo].[wgo_p1] to newuser

    -- fails when you execute with login X

    and login X can't grant permission to newuser on proc userdefined_schema_wgo.wgo_p1

    then authorization on schema userdefined_schema_wgo has been changed to X.

    now login X can grant permission to newuser on proc userdefined_schema_wgo.wgo_p1

    pre setup: I have granted all the privileges same as you as below:

    CREATE ROLE [Developer] AUTHORIZATION [db_owner]

    GO

    -- Grant database level permissions to the role

    GRANT ALTER ANY SCHEMA TO [Developer]

    GO

    GRANT CREATE FUNCTION TO [Developer]

    GO

    GRANT CREATE PROCEDURE TO [Developer]

    GO

    GRANT CREATE table TO [Developer]

    go

    GRANT SHOWPLAN TO [Developer]

    GO

    GRANT VIEW DEFINITION TO [Developer]

    GO

    GRANT EXECUTE TO [Developer] WITH GRANT OPTION

    and login X is part of role Developer.

    And thank you very much for the scenario, it helped me to explore most of the schema and with grant option stuff.