The way I would do this is:
Make sure users have roles relevant to their area of the plant.
Make sure alarms have a filterable quality relevant to the plant.
i.e. area ‘alram’ so you can filter alarms like area* on the alarm table.
Then I would bind the filter based on role with an expression.
like
if ifuserhasrolea() = area 1
return area 1*
its bad psuedocode and not right the right call, but something along those lines with a few cases depending on how many areas you have. If you need I can write up something better and more accurate