![set owner of dbschema sql set owner of dbschema sql](https://res.cloudinary.com/practicaldev/image/fetch/s--EcgmrOPM--/c_imagga_scale,f_auto,fl_progressive,h_500,q_auto,w_1000/https://res.cloudinary.com/practicaldev/image/fetch/s--xeUlUIeI--/c_imagga_scale%2Cf_auto%2Cfl_progressive%2Ch_420%2Cq_auto%2Cw_1000/https://dev-to-uploads.s3.amazonaws.com/i/td858rk3odul568tgq9x.png)
In this case: developers use several schemas for an application (good). Remember "GOTO considered harmful"? It's not called "GOTO considered inappropriate except in very special cases". If a feature is abused far more often than used, you have every right to declare it "evil" if only tounge in cheek. They make trojan horses all too possible and as importantly they flood the namespace - making consolidation of many developed applications impossible. Public synonyms are another 'feature' I wish we didn't have. I'll let an application have at most one public synonym, if any. If I said "altering current schema at logon avoids having public synonyms or private synonyms in your login schema pointing to your object-owning schema" that begs the question "well, why not use synonyms" - so to short circuit that, I define them as evil. I would rather them avoid - even perhaps be afraid of - synonyms and triggers than think they are an OK approach in general as well. People skim, scan, do whatever - find the answer on the internet, quick. Not enough said in my opinion, not in the year 2009 anyway. should be avoided, especially by those that cannot figure out when they would not be evil (I'm specifically saying you are *not* in that category). Public synonyms like triggers, autonomous transactions, when others then null. I hope they won't (assume they are tongue in cheek).