You can use the API to do this with any database you choose. There isn't necessarily a connector, but tools like Boomi, Talend, Zapier, etc. can be middleware if needed.
The typical way to enrich leads with outside, non-CRM information (whether that be from an in-house database or commercial service) is by using webhooks, which are Marketo's outbound API.
By running leads through a webhook periodically or in response to some other action, you can update any custom fields on the lead. A commercial service might update a lead w/firmographic data; your own webhook-compatible service could send back anything it wants (and keyed on any Marketo field, in case you don't have email addresses in the external DB).
However, webhooks can't update custom objects on the lead (if that's what you were thinking) so that would have to be done via inbound REST API, as Josh mentions.