What is the EXPORT privilege on ORACLE
First, just to be certain we're covering our basis, this piece of code:

EXP FILE = B.DMP OWNER(B)


won't work. That's not a properly formatted EXP command. But assuming that you're using a properly formatted command, all that a user really needs is the EXP_FULL_DATABASE role, and they should be able to export any object in the database:

SQL&gt; create user captjackvane identified by x default tablespace users temporary tablespace temp;

User created.

SQL&gt; grant create session to captjackvane;

Grant succeeded.

exp userid=captjackvane/x owner=rpt file=rpt.dmp log=rpt_dmp.log resumable=Y


This results in 

EXP-00032: Non-DBAs may not export other users
EXP-00000: Export terminated unsuccessfully


But when I add the grant:

SQL&gt; grant exp_full_database to captjackvane;

Grant succeeded.


We see that I can now do the export:

About to export specified users ...
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user RPT 
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user RPT 
About to export RPT's objects ...
. exporting database links
. exporting sequence numbers
. exporting cluster definitions
. about to export RPT's tables via Conventional Path ...
. . exporting table               AD_HOC_FIELD_SET          2 rows exported


If you've granted this permission, then there are a few other things you may want to check. The first is the permissions on the directory you're trying to write your dump file to; your Oracle type user will need to be able to read/write in that directory. 

Can you post the exact error message you're getting?