トップ回答者
システムデータベースのテーブルをアプリで使用できますか?

質問
-
お世話になります。
かなり阿呆らしい質問ですが、助けてください。
Windows 2003Server上で動く(DBはSQL Server 2000)システムの環境まわりのメンテを依頼されています。
(システムの中身はソースも含めてノータッチです)
このシステムで、ある画面から入力されたデータを調べていたチームから、入力データが行方不明
(SQL Server上に該当するテーブルも列も見当たらない)だと申告がありました。
業務のデータベース内には確かに見当たらないので、システムデータべース(master、model、msdb…)内にテーブルを隠してないかと
思い(なんのために?)、調べました(別システムのSQL Server2000と比較)が余計なテーブルの混入はありませんでした。
システムデータベースには隠れていなかった旨を報告しましたら、上長から「テーブルの中身も確認したんだろうな」と突っ込まれ、
レコードの確認も行う羽目になりました。
そもそも、「システムテーブルをアプリがいじれるのか?」とか「アプリが勝手にいじったら、まともに動かなくなるのでは?」とか
思いますが、問答無用です。
別システムのDBシステムのシステムレコードを比較するのなら、違っていて当たり前だと思います。
なんか愚痴のようになってしまいましたが、ご存知の方いらっしゃいましたら、お願いします。
回答
-
権限さえあれば、システムデータベース内にテーブルを作成し、そこにデータを読み書きすることは可能です。
SQL Serverに接続しているユーザーの権限を調べれば、システムデータベースへの読み書きが可能か判断できると思います。>このシステムで、ある画面から入力されたデータを調べていたチームから、入力データが行方不明
>(SQL Server上に該当するテーブルも列も見当たらない)だと申告がありました。
ソースを調べられるのであれば、どのサーバーのどのデータベースのどのテーブルに読み書きしにいっているかはわかるはずです。
もしどうしてもわからなければ、プロファイラというSQL Serverのツールがありますので、その画面からデータを入力した際に、どのようなSQLが投げられているか確認されると良いと思います。★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年3月15日 7:23
- 回答としてマーク へっぽこドラマー 2017年3月15日 7:44
すべての返信
-
権限さえあれば、システムデータベース内にテーブルを作成し、そこにデータを読み書きすることは可能です。
SQL Serverに接続しているユーザーの権限を調べれば、システムデータベースへの読み書きが可能か判断できると思います。>このシステムで、ある画面から入力されたデータを調べていたチームから、入力データが行方不明
>(SQL Server上に該当するテーブルも列も見当たらない)だと申告がありました。
ソースを調べられるのであれば、どのサーバーのどのデータベースのどのテーブルに読み書きしにいっているかはわかるはずです。
もしどうしてもわからなければ、プロファイラというSQL Serverのツールがありますので、その画面からデータを入力した際に、どのようなSQLが投げられているか確認されると良いと思います。★良い回答には回答済みマークを付けよう! MVP - .NET http://d.hatena.ne.jp/trapemiya/
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年3月15日 7:23
- 回答としてマーク へっぽこドラマー 2017年3月15日 7:44