OracleデータベースでPL/SQLコードをデバッグできるようにするには、デフォルトで付与されていないDEBUG権限(GRANT DEBUG CONNECT SESSION TO username)が必要です。現在、私はDEBUGパーミッションを持っていないので、明示的なデバッグ(DBMS_OUTPUT.PUT_LINE()によるエラーのトレース)なしでPL/SQLプロシージャを開発します。 DWH DBAは、この理由を与えずにこの許可を私に与えることを拒否しました。彼と話す前に、私はこの許可を私に与えることを拒否する理由が何であるか知りたいと思います。これらのアクセス許可を持つことの(セキュリティまたはパフォーマンス)影響は何ですか?Oracle PL/SQLのデバッグ権限の意味
1
A
答えて
1
DBAは、一般にユーザーに権限を付与するためのすべての要求を拒否するように訓練されています。
なぜですか?一般的にはデータベースの公開につながり、#1の仕事はデータベースを保護するためです。
特権を求めるときには、ビジネスケースを作成する必要があります。一般的には、本番のコードではなく、DEVELOPMENTインスタンスでコードをデバッグするだけだと思います。 PRODUCTIONでこのprivを要求している場合、PRODUCTIONでデバッグしていないと言っているかもしれません。
オーバーヘッドや特権の「コスト」に関しては、デバッグのためにPL/SQLをコンパイルするとオーバーヘッドが増加します。つまり、プログラムを実行するにはより多くのコストがかかります。データベースは通常より多くの情報を収集しています。プロダクション環境でこのオーバーヘッドを持つことは望ましくありません。遅くすることしかできません。
あなたのケースを勝ち取るために、開発インスタンスについて話しているとすれば、私はあなたのコードにDBMS_OUTPUTを持つことも問題になると主張します。あなたは生産に移る前にそれをオフにすることを忘れてはいけません。それは非効率的です。したがって、DBAに利益を販売し、DBMS_OUTPUTコードを減らして安心して運用してください。
関連する問題
- 1. PLSQLシンボルの意味 "=>"
- 2. Django権限のデバッグをデバッグ
- 3. Oracleトリガーの権限
- 4. Oracleディレクトリの権限
- 5. oracleでのREVOKE権限11g
- 6. Oracle/PLSQLのパフォーマンス
- 7. PLSQL - Oracleのコレクション
- 8. PLSQLではGETは何を意味していますか?
- 9. Oracle PLSQLのcase文
- 10. シェルスクリプト内のデバッグ機能の意味
- 11. このユーザー権限の設定は意味がありますか?
- 12. 権限と特権Oracle DBユーザーのためのSonar LTS
- 13. 掘削結果の権限セクションはどういう意味ですか?
- 14. IN()句の配列oracle PLSQL
- 15. oracle plsqlのステップ・バイ・ステップ・ロギング
- 16. PLSQLプロシージャ内のOracleトランザクション
- 17. oracle plsqlの動的なgoto
- 18. PLSQL extract procudures oracle 9i
- 19. Oracle 12c PLSQL MERGEエラー
- 20. Oracleエラー: "ANOMALY:使用無意味REXプリフィックス"
- 21. Oracle:ロールに読取り権限と作成権限を付与する方法
- 22. PLSQL ORACLE:トリガーによるエラー
- 23. pl/sqlループレコードselect oracle plsql
- 24. PLsqlまたはOracle SQL
- 25. oracle plsqlプロシージャカーソルループ内のテーブルの動的カウント
- 26. 特定の文字のOracleデータベースPLSQLサブタイプ
- 27. MavenとSpringBootのデバッグ-Drun.jvmArguments = -Xdebugの実際の意味
- 28. WScript.ShellオブジェクトのASP権限の問題をデバッグする方法は?
- 29. ストアド・プロシージャの権限をOracleの別のユーザーに付与
- 30. Oracle 9iでのiの意味、およびOracle 10g、11gでのg
「PL/SQLをデバッグするためにコンパイルするとオーバーヘッドが増えます。それはデバッグ段階ですが、デバッグが完了してパッケージが完全にコンパイルされている場合、オーバーヘッドはありません。 DBMS_OUTPUTを使用してエラーをトレースし、デバッグ機能を持たないためには、デバッグよりもずっとパッケージを実行する必要があります。それはfof dbとしての開発における私にとって実用的なオーバーヘッドです。 – sbrbot
いいえ、COMPILE FOR DEBUGを実行すると、実行時のオーバーヘッドが残ります。これは、DEBUG情報を削除します。 – thatjeffsmith
あなたのコメントをもう一度読みます.2回目のコンパイル後にオーバーヘッドが消えます。 – thatjeffsmith