Salts are usually not stored separately. The password checker needs to access both the password hash and the password salt. This means that there is one set of privileges(whatever the password checker has) necessary to get both the hash DB and the salt DB. Therefore any attacker that has the password hash DB also has the Salt DB.
Ideally, every password will have a different salt,
More than ideally, the only way it makes any sense at all is if they are different.
As an example:
User: bob password: password1 password hash: 12345
User: sue password: password1 password hash: 12345
with salt that is the same for all users:
User: bob password: password1 salt: 7 password hash: 22345
User: sue password: password1 salt: 7 password hash: 22345
with salt that is different per user
User: bob password: password1 salt: 7 password hash: 22345
User: sue password: password1 salt: 8 password hash: 32345
Per user salt means that an attacker who has stolen the password db can't crack one password and unlock 100 accounts because they all have the same password hash. That is the only point of a salt it serves no other purpose.