Perhaps it is. But, more likely, in a month or two you'll encounter unexplainable problems as the same query will give you different results when run on those schemas as you'll forget that this is a TABLE here instead of a SYNONYM.
When dealing with synonyms, you use the same set of data in all schemas whose synonyms refer to the same original table.
Your "solution" will be OK as long as noone changes any of those tables. You could manage this on two schemas, but what will happen when another schema appears and needs to use data in the 'cif' table? Will you create another one? Who will be responsible for the maintenance?
Finally, what is wrong with synonyms? Why would you prefer tables instead of synonyms? In such a case, it doesn't seem to be a clever choice.
Why do I use table, not synonyms?
I need to download the data from Oracle/Solaris into SQL Server/Windows. That's in development. when time comes to do the migration to Production, all settings will be mapped to production. That is if I use synonym in development, problem will occured during migration to production because there's actually table in production, not synonym.
I hope that will answer.
If you wrote those few sentences in the first post, everything would be much more clear and people here wouldn't have to guess what your are trying to do.
Reading your last post, however, it seems that the development environment should be exact copy of the production database. Moreover, are you saying that - when the development is finished - you'll just move everything (tables, database triggers, packages, ...) to the production? Because, if it is only the CODE you're moving, it really doesn't matter whether it is a table or a synonym. For example, in a statement like
SELECT empno, ename, loc FROM employees;
you can't tell is the 'employees' table or a synonym.
If you are satisfied with your own solution, that's OK ... I hope you don't mind me discussing about the issue.
I'm still having trouble understanding the original question. In an Oracle database you could have two tables named "CIF", or ten, or a hundred. SC could have one, EISVIEW could have another, SCOTT, WILLIAM and KERBEROSS could each have their own as well. Now you log in as JOESCHMOE and enter "SELECT * FROM cif;" and you wonder why the database doesn't just give you the one you were thinking of when you ran it?