- - PR -
読取専用(SELECTのみ)のアプリケーション
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-10-22 07:49
unibon です。こんにちわ。
トランザクションを開始してから、(SELECT のはずだけどもしかしたら UPDATE かもしれない)SQL を実行し、その実行後は有無を言わさずロールバックしてしまう、という方法はどうでしょうか?良い副作用として、DML だけが許可され、DDL(DROP TABLE 等)を拒否できます。 思い付きなので、ほんとうにこんなことができるのかはわかりませんが。 ただ、お遊び的なアプリケーション(スクラッチ的なツール)ならこれでもよいのですが、普通はもっと別のソリューションのほうが良いでしょう。 | ||||||||
|
投稿日時: 2004-10-22 10:25
DDLってロールバックできないんじゃ…? まあ、普通にDBユーザの権限で制限するのが無難じゃないかと思います… | ||||||||
|
投稿日時: 2004-10-22 10:37
unibon です。こんにちわ。
まあ、トランザクション内のコンテキストで DDL を実行すると、そもそもエラーになるかな、と思います...
そうですね。ただ、設定が複雑だし、抜けがあったら怖いし、設定を変えてまた元に戻すのも面倒だし、とかそういう場合もあるかなと思います... #あとで、引用の間違いを修正しました。 [ メッセージ編集済み 編集者: unibon 編集日時 2004-10-22 10:38 ] | ||||||||
|
投稿日時: 2004-10-22 10:59
既に読取専用ユーザを作成されているなら、ツール経由でOracleにアクセスするユーザを固定してしまってはどうでしょうか? 業務AP以外での本番DB更新は原則、認めない方針で良いと思います。 バグによるデータ障害のリカバリやマスタテーブルの更新時にはSQL文を作成してもらって、管理者がSQL*Plusで実行する。これでどうでしょうか。 |