Alright, after working with Microsoft team, we learnt about the below list of all access that we need to provide (definitely not db_owner)
--Make sure your user has the permissions to CREATE tables in the [dbo] schema
GRANT CREATE TABLE TO [<your_domain_user>@<your_domain_name>.com];
GRANT ALTER ON SCHEMA::<target_database_schema_name> TO [<your_domain_user>@<your_domain_name>.com];
--Make sure your user has ADMINISTER DATABASE BULK OPERATIONS permissions
GRANT ADMINISTER DATABASE BULK OPERATIONS TO [<your_domain_user>@<your_domain_name>.com];
--Make sure your user has INSERT permissions on the target table
GRANT INSERT ON <your_table> TO [<your_domain_user>@<your_domain_name>.com]
Ref: https://video2.skills-academy.com/en-us/azure/synapse-analytics/spark/synapse-spark-sql-pool-import-export?tabs=scala%2Cscala1%2Cscala2%2Cscala3%2Cscala4%2Cscala5
After providing all the above, it still didn't work as were using COPY command. So, we have to provide CONTROL permission on Dababase Level (CONTROL permission on individual schema also didn't work)
Ref: https://video2.skills-academy.com/en-us/azure/databricks/archive/azure/synapse-polybase#--required-azure-synapse-permissions-for-polybase
Hope it helps