Please post the exact error, and Oracle version. CTAS is unlikely to cause "SQL报temp表空间无法扩展", unless the select part has a huge sort (or, to less extent, hashing).
Jametong is correct. You can't grant quota on undo or temp. If you were able to before 10gR2, that was actually a bug (see Note:331657.1).
There's no way I can think of to limit a user's usage of undo tablespace. But you can limit his usage to temp by creating a dedicated temporary tablespace (whatever size you allow him) and only assign his temporary tablespace to this tablespace.