One time I faced an issue where my customer is having an HTTP 500 internal server error while trying to access any SharePoint site. The problem appeared once he moved back and forth with inheriting/breaking inheritance of permissions over different levels in the site collection.
"Security corruption in database" sounds very tough for a customer running a production portal with a backup that can make him lose around 3 weeks of valuable data.
However, the solution tends not to be that hard, there's an stsadm command that help us detect the corruption and even delete the orphaned items causing the corruption.
Follow these steps:
a. stsadm -o databaserepair -url http://SITEURL -databasename DBNAME
and it returned some orphaned items.
b. stsadm -o databaserepair -url http://SITEURL -databasename DBNAME -deletecorruption
and it removed the orphaned items.