ホーム › フォーラム › A5:SQL Mk-2掲示板 › ストアドプロシージャの表示について確認
-
投稿者投稿
-
佐藤ゲスト
●ツール
A5:SQL(ver2.18.2/x64)
●DB
Oracle19c 19.11.0.0.0●発生事象
データベースツリー > ユーザ “a” > ストアドプロシージャの表示不具合(テーブル等は表示される)お世話になっております。私は利用者ですが、以下の点について確認したいことがあります。
現在、弊社のDB環境において、次のような現象が発生しています。
オブジェクト所有者スキーマ(各DBオブジェクトの作成者ユーザ)であるユーザ “a”
読み取り専用スキーマ(各種権限をselect/read系のみ)であるユーザ “b”
ユーザ “b” を使用する際に、ユーザ “a” のストアドプロシージャが表示されません。ただし、テーブルなどは正常に表示されています。この現象について、開発者様にお伺いしたいのは以下の点です。
ユーザ “b” にストアドプロシージャの表示権限を与える方法はありますか?
現在の設定では、ユーザ “b” はどのような操作を行うことができますか?
ストアドプロシージャの表示不具合について、解決策はありますか?松原正和キーマスター佐藤さんこんにちは。
A5:SQL Mk-2の内部ではストアドプロシージャの列挙に ALL_PROCEDURES を参照しています。確認まではしていないのですが、おそらくはプロシージャの実行権限がないために参照できなくなっているのでは? と思います。
実行権限を与えるには、
GRANT EXECUTE ANY PROCEDURE TO ユーザー名;
になるかと思うのですが、プロシージャの内部でデータの書き換え等を行っているとすると、読み取り専用ユーザーにこの権限を与えるのは良くないようにも思えます。問題ないプロシージャだけを個別に権限付けする方法もあるかと思いますが、管理が大変そうですね。
(もしかしてプロシージャの実行権限を与えてもテーブルの書き込み権限がなければ(正常に)エラーになるのか? とも考えましたが、検証していないのでよくわかりません)佐藤ゲスト松原さま
お世話になっております。
ご回答ありがとうございますユーザ “b”(読み取り専用ユーザー)を利用した場合に、
ALL_PROCEDURESでパッケージ(プロシージャ含む)が表示されないことまで確認がとれました。おっしゃるとおり、実行権限を与えるのは現実的ではない(この環境構成は本番環境でも同様にしていきたいため)
とはいえ、ソースを見るために、ユーザ “a”(所有者ユーザー)を使うのは日々の運用として適さないので、
0.読み取り専用ユーザーでログイン
1.DBA_PROCEDURESを参照(owner=所有者ユーザー)
2.DBA_SOURCEを参照(owner=所有者ユーザーで、name=見たいオブジェクトを指定)をすることでソースを参照することができました。
A5:SQLには私たちの業務にとって非常に便利な機能が多くありますが、
残念ながら、
データベースツリー > ユーザ “a” > ストアドプロシージャの表示
の使用はできないようですそのため上記の方法で対応することにしました。
素晴らしい製品をありがとうございます。
今後のアップデートに期待しています。濱仲ゲスト恐れ入ります。
便乗質問となってしまい申し訳ありませんが、私も長年この件に
悩んでいます。DBA_PROCEDURESを参照頂くようにする事は出来ないのでしょうか?
松原正和キーマスター濱仲さんこんにちは。
Version 2.19.0 beta 13 にて、DBA_XXX データディクショナリが参照できそうなときは、そちらを参照するように修正してみました。いかがでしょうか? -
投稿者投稿