• Without a repro it is difficult to say what might be going on. There are no changes in this area that I know of. But check that the function is actually owned by dbo.

    This repro works for me:

    CREATE USER pelle WITHOUT LOGIN

    go

    CREATE SCHEMA schema1;

    go

    CREATE SCHEMA schema2

    go

    CREATE FUNCTION dbo.somefunc(@d float) RETURNS float WITH SCHEMABINDING AS

    BEGIN

    RETURN log(@d)

    END

    go

    CREATE VIEW schema2.viewB AS SELECT dbo.somefunc(1E0) AS col

    go

    CREATE VIEW schema1.viewA AS SELECT col FROM schema2.viewB

    go

    GRANT SELECT ON SCHEMA::schema1 TO pelle

    go

    EXECUTE AS USER = 'pelle'

    go

    SELECT col FROM schema1.viewA

    go

    REVERT

    go

    DROP USER pelle

    DROP VIEW schema1.viewA

    DROP VIEW schema2.viewB

    DROP FUNCTION dbo.somefunc

    DROP SCHEMA schema1

    DROP SCHEMA schema2

    [font="Times New Roman"]Erland Sommarskog, SQL Server MVP, www.sommarskog.se[/font]