Ideally, you should create a role with grant VIEW ANY DEFINITION and include all users who need to read SQL Server metadata.