Ed,
Sorry, no.
Speaking as a database contributor (PostgreSQL), databases should absolutely secured at the network level. If not by firewall, by making them only available on localhost, or only by VPN or SSL connection.
DBMSes are designed to be feature-ful, fast, and secure ... **in that order**. Which means that no DBMS is designed to stand up to a protracted, determined, knowledgable attack on an open port (athough some of us do better than others). At the very least, an attacker could DOS you by simply attempting a connection thousands of times a second, forcing the database to fork processes or threads.
Further, the most popular DBMSes (SQL Server, Oracle and MySQL) pretty much always have outstanding security exploits on their bug lists, and far more which were patched in the most recent update most people haven't applied. Even we fix 1-2 exploits per update these days, some of which are quite dangerous with an attacker who really knows their stuff.
Developers are *terrible* about setting good DB passwords. I absolutely can't tell you the number of times I've seen "temp/temp" as an authentication string in a production database, or "trust" authentication for the right IP (which can be spoofed) because a developer wanted a back door which didn't require typing his password.
For that matter, web developers are supposed to set up different permissions for the web user vs. the database owner, but this is a rare thing to see in practice.
So it's *way* important to firewall your database. Better yet, don't have it listen to the internet at all: set up the database to only listen to localhost or the private network.
--Josh Berkus