Today I encountered this very strange problem on PL/SQL (The version number is mentioned) , I kept the same PL/SQL window open for many hours and I was randomly connecting to production and test databases.
OK , At one point of time I was connecting to the test database and was trying to run an update query for a table for which I have the update rights , it was giving me insufficient privileges error (very strange) .
The only case where I should be getting this error is when I am trying to do it on production (because I don't have rights there) , So I rechecked and made it sure that I was connected to Testing.
I also checked for any column level roles defined for that table but there were no such roles defined for the column I wanted to update.
Then I ran the same query on one of my colleague's machine (of course using my login id on test) surprisingly the record got updated.
It looks like a bug in PL\SQL where it was showing me that I am connected to test database , in reality it was connected to the production database (because I was using the same PL/SQL to connect to test and production simultaneously). And it could be very harmful for the cases where somebody has rights on both the test and production databases and while doing testing he accidentally insert/update or delete a record on production.
The safest way I found is to log off all your sessions before you are going to login to any database instance.
This option is available in PL/SQL tool bar ---> Session --> Log Off --> ALL.
OK , At one point of time I was connecting to the test database and was trying to run an update query for a table for which I have the update rights , it was giving me insufficient privileges error (very strange) .
The only case where I should be getting this error is when I am trying to do it on production (because I don't have rights there) , So I rechecked and made it sure that I was connected to Testing.
I also checked for any column level roles defined for that table but there were no such roles defined for the column I wanted to update.
Then I ran the same query on one of my colleague's machine (of course using my login id on test) surprisingly the record got updated.
It looks like a bug in PL\SQL where it was showing me that I am connected to test database , in reality it was connected to the production database (because I was using the same PL/SQL to connect to test and production simultaneously). And it could be very harmful for the cases where somebody has rights on both the test and production databases and while doing testing he accidentally insert/update or delete a record on production.
The safest way I found is to log off all your sessions before you are going to login to any database instance.
This option is available in PL/SQL tool bar ---> Session --> Log Off --> ALL.
No comments:
Post a Comment