I am a fan of coding references to specific objects or if that is undesirable, create PRIVATE synonyms or views in the application pointing to the objects in question. Public synonyms are public - no one owns them, anyone that can create them can overwrite them, change them. "whoops, we did a create or replace public synonym X for y - didn't know you were using that" Public synonyms can leads to a maintenance headache. what if I drop a dbms_sql package into your schema surreptitiously - this dbms_sql want to be just calls sys.dbms_sql - except for the parse routine which will slighly modify your sql first. WordNet from an awesome NLTK library helps to find the synonym words. (this is one reason why people might consider calling SYS.dbms_sql instead of dbms_sql. Short for typographical error (mistake when typing, not indicative of not knowing how to spell) 2. In chatbot, we still have typo even though most of the application comes with word. All of a sudden, instead of calling the public synonym X - that other app will be invoking this new X. Then some malicious (or not even malicious, just mistaken) developer comes along and implements X in that other schema. Another application schema just uses "X" - believing it to be your-app.X. What if you install your application and create a public synonym X for some bit of it. Public synonyms can lead to security issues. Or if you want to put two applications together in your database and they both want X. If two bits of your application schema want to have X - forget it. Public synonyms pollute the namespace - there can only be one public synonym X. How about this, I list the disadvantages of public synonyms.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |