The permissions in Jira are quite granular. You can control lot of things that a user can or cannot do. However when a user has a permission to view the project they can also view all the issues under it. You may have a big project with thousands of issues and for some reason if you want to hide a specific issues from a group of people then it can still be donedone using Security Levels.
These security levels can be created and assigned to people and when you edit an issue you can change the security level based on the security scheme used in that project.