Toad World® Forums

DBA system privilege required for running tests


#1

I have installed QCTO backend in my own schema. The tested programs reside in another schema. I don’t have public synonyms for QCTO. When I tried running a test I got an error “The program was not found”. The error disappeared only after my login had been granted DBA privilege.

So, here is the question: is there any way of testing programs in another schema without creating public synonyms or granting DBA to QCTO login?


#2

Vladimir,

I am quite certain you do NOT need any DBA privs to use Code Tester.

Here is what I think happened:

  • You installed Code Tester into schema X. (with public synonyms?)
  • You then wanted to test a program in schema Y.
  • So you started up Code Tester and connected to schema X - but you could not see the program.

OK, here’s the problem: we can’t work magic. If schema X does not have the authority to see/run a program in Y, then Code Tester cannot test it THROUGH schema X.

Instead, you should install with public synonyms, and **then connect as schema Y to test programs in that schema.
**Does that make sense? Let me know…

SF

PS - from a technical standpoint, the Code Tester packages are defined as AUTHID CURRENT_USER, so even tho they are owned by schema Y, when you run them from schema X, they can work with programs in schema X.


#3

Steven,

Before I tried to run the test I had granted EXECUTE privilege on the tested package in schema Y to user X. In my opinion, this should be enough to run that package by user X. And it worked perfectly with OUnit + utPLSQL installed in schema X.

So, why does QCTO produce that error? What else does it try to do with the tested package except executing it?

I’ll use the regular approach with public synonyms if there is no workaround, but in any case I would like to know what’s going on when I run the test.

Vladimir Antropov


#4

Vladimir, you are absolutely right. If you grant execute then you should be fine. I will take another look and see if I can figure out what is going wrong.