what you might need to look at is setting up a separate sqltags provider for each project. then you can filter by just the system on alarm tables and alert storage profiles and the like.
for instance you have a project for customer 1 and another project for customer 2.
setup a sqltags provider for customer 1 and a separate sqltags provider for customer 2.
then you have your separate database for each.
then you can setup authentication and auditing profile for each.
then when you setup your alert notification profile you choose the database for that customer and then filter the alerts by system, which would be something like SQLTags.Customer 1 (where Customer 1 is the name of the sqltags provider).
now on all of the alarm tables and such you can filter by system also, which would show all of say customer 1’s tags in alarm, instead of system wide tags in alarm. then if you needed to filter by location you could use the tag path.
Thats the best way that I have seen so far to segregate customers , but someone may know something better.