There is no in built functionality in Excel to handle viewing and editing rights for individual users. However, this can be handled through VBA code on the Open event of the workbook. In this case, the user must enter login details and the protection is then dynamically set based on the use's credentials.You can find code for accomplishing this here.
To automatically hide and unhide columns or rows, the best method is to use grouping under Data > Outline > Group.