Is there a way to clear the cache without dropping tables? I am new to Drupal and realized that when we clear cache in Drupal 'drush cr'. It executes drop db commands.

This is a very big security issue in our company because granting drop privileges to a mysql user on a production server would be dangerous

What would be an alternate solution?

  In Connection.php line 686:
  SQLSTATE[42000]: Syntax error or access violation: 1142 DROP command denied to user 'xxxxx'@'100.100.100.100' for table 'webprofiler': TRUNCATE {webprofiler}; Array()

  In Statement.php line 59:
  SQLSTATE[42000]: Syntax error or access violation: 1142 DROP command denied to user 'xxxxx'@'100.100.100.100' for table 'webprofiler'


Correction

drush cr is not dropping tables. MySQL Truncate requires the DROP privilege as of MySQL 5.1.16. (Before 5.1.16, it requires the DELETE privilege).
http://dev.mysql.com/doc/refman/5.1/en/truncate-table.htm

So this means when drush cr is run you need a user with drop privileges.
As Kevin correctly points out in the comments, the cache clear is issuing a TRUNCATE command rather than DROP, but TRUNCATE does require the DROP permission.

If you look at the manual installation method in the install guide, you'll see that DROP is one of the permissions that is granted as part of the setup process:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES ON databasename.* TO 'username'@'localhost' IDENTIFIED BY 'password';


That's followed shortly after by:


  Note: Unless the database user/host combination for your Drupal installation has all of the privileges listed above (except possibly CREATE TEMPORARY TABLES, which is currently only used by Drupal core automated tests and some contributed modules), you will not be able to install or run Drupal.


So DROP is simply a required permission for Drupal to work.