Salesforce’s security model is pretty flexible, but it’ll take a little (but not too much) work if you want to set it up so all of your accounts are publicly available except for a few.
First, create a new check box field called ‘Private’. If an account should be private then we’ll check this button. You may want to control field level security (FLS) so only admins can read and/or update the field.
Next, we’ll set the Organization-Wide Default for Account Security to private. This is done under Setup | Security Controls | Sharing Settings.
Finally, create an Account Sharing Rule that makes non-private accounts available for Read/Write, then the appropriate access for Contracts & Cases.