許久以來，認為只要對用戶賦予grant debug any procedure權限，用戶就擁有任何存儲過程及函數的調試權限，其實不然，并沒有達到想要的結果！讓用戶擁有存儲過程的調試權限，必須同時擁有下列權限！
1）grant debug any procedure
2）grant debug connect session
Privileges for Debugging PL/SQL and Java Stored Procedures
Starting with Oracle Database 10g, a new privilege model applies to debugging PL/SQL and Java code running within the database. This model applies whether you are using Oracle JDeveloper, Oracle Developer, or any of the various third-party PL/SQL or Java development environments, and it affects both the DBMS_DEBUG and DBMS_DEBUG_JDWP APIs.
For a session to connect to a debugger, the effective user at the time of the connect operation must have the DEBUG CONNECT SESSION system privilege. This effective user may be the owner of a definer's rights routine involved in making the connect call.
When a debugger becomes connected to a session, the session login user and the currently enabled session-level roles are fixed as the privilege environment for that debugging connection. Any DEBUG or EXECUTE privileges needed for debugging must be granted to that combination of user and roles.
To be able to display and change Java public variables or variables declared in a PL/SQL package specification, the debugging connection must be granted either EXECUTE or DEBUG privilege on the relevant code.
To be able to either display and change private variables or breakpoint and execute code lines step by step, the debugging connection must be granted DEBUG privilege on the relevant code
The DEBUG privilege effectively allows a debugging session to do anything that the procedure being debugged could have done if that action had been included in its code.
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/196700/viewspace-694583/，如需转载，请注明出处，否则将追究法律责任。