Another solution to protect your database is to have a seperate backend network exclusively used for database traffic. Your webserver(s) would have two interface cards: one facing the world, one facing the internal database network. This way- there's no chance of intercepting database traffic from the outside.