I'm interested in learning about enterprise SSN processing solutions. (I looked pretty hard for any pre-existing posts on SO, including in the review of “automatic” “related issues” with terriffic SO, and didn't find anything, so hopefully this is not a repetition.)
Firstly, I think it is important to list the reasons why systems / databases use SSN: (note - these are the reasons for the actual current state - I understand that many of them are not good reasons)
Required for interacting with external objects. This is the surest case when the external objects that your system is paired with require SSN. Usually it will be state, tax and financial.
SSN is used to ensure system-wide uniqueness.
SSN has become the default foreign key used internally for inter-system connections.
SSN is used to authenticate users (for example, to log in)
The corporate solution that seems optimal to me is to create a single SSN repository, accessed by all applications that should look for SSN information. This repository replaces the globally unique, random 9-digit number (ASN) for a true SSN. I see many advantages for this approach. First of all, this is obviously very backward compatible - all your systems “just” have to undergo a large synchronized one-time data cleansing exercise, where they replace the real SSN with an alternative ASN. In addition, it is centralized, so it minimizes opportunities for verification and compliance. (Obviously, as negative, it also creates a single point of failure.)
This approach resolved problems 2 and 3 without requiring a search to get a real SSN.
№ 1 ASN SSN. , , SSN. , 4 SSN, , - .
№4 , № 1, , , , SSN .
: