For one thing, we have to make sure that the information included in the main database isn't available to anyone, considering it will be personal information (most notably email addresses, street addresses, phone numbers, and of course...passwords (encrypted though)).
I do have full control over the database system, and let me outline what I've come up with so far.
Different affiliates are created in a table that called entityData. Inside this table is information for each entity, but most importantly a few keys and hostmasks to help in validating data from the entity to the main system.
There is another table called tokenData, which stores access tokens for the RPC's on the main server. Every 15 minutes, the main server will create new tokens, and send data to RPCs placed on the entity servers (which is data stored in the entityData table of course).
The entity RPCs will verify where the information is coming from as best as possible using hostmask and IP information, as well as a few assigned keys which will be changed on occassion by hand.
If the information seems to be coming from the main server, it will decode the encrypted information, and setup a new access token for itself. Once it has completed doing so, it will send a command to yet another RPC on the main server with its identification keys.
The main server's second RPC will verify as best as possible that the data is coming from a valid entity. If so, it will delete the old access tokens (this is in order to make sure that packet loss and other types of lag won't cause hiccups in the service) from being valid. (On a side note, access tokens will only ever remain for 2 full cycles. If an entity fails to update its token with the server, the old token will work for only another 15 minutes before it is removed)
With all of this, the access tokens allow the entity servers to query other RPCs on the main server, which will handle database queries without allowing the entities to actually interact with the database.
I'm very open to ideas here, I need to make sure this is as secure as possible without giving up too much in the way of speed/efficiency. 🙂