"If I use an ORM, I have to give the SQL account the client application is using more-or-less carte-blanche access to the database as it could conceivable read from or write to anywhere in the database through arbitrary SQL"
You can give table level permissions (and even specific columns if you want) to the ORM db account. From a security point of view there should be no difference.