Well, should a user with no permissions have any functions? That's a policy decision, of course; and one for which I have no opinion either way 😃
Anyway, you get "no functions either" because it's an inner join ... you'll want either a left outer join or a right outer join if you want the extra records, left/right possibly depending on your table layout. Also, most types of joins have a tendency to return huge result sets, so test in a sandbox and check how many rows are returned before you put JOINs into production code ...