Yes, you require select permission for the table.
For functions, if it is a built-in function (such as is_account_group_member), then you do not require permission. However, if it is a custom function, you must have access to execute it.
You can refer to the Databricks documentation here