Grant と Revoke を、うまいこと使ってみたい [RDBMS]
とある業務システムでの話。
そろそろ本番稼動させましょうかねぇ・・・と、その前に、システムを運用するにあたって何か問題はないかねぇ、と関係者に意見を聞くことになった。
そこで言われたことが「データーベースにアクセスする権限を適切に分けてますか?」
?????
何が言いたいの?と聞いてみると、要は Grant を使って、ユーザー(実際にはプログラム)が必要としないテーブルにアクセスできない(とか読めれば良い場合に書き込みできない)ようになってますか?ということだそうです。
うーむ、おっしゃりたいことはわかりますが、そんな設計になってないので無理です。
(後でいちゃもんつけるのは楽だなぁ・・・。こういう多少わかる人がとっても困ります。)
教科書的には、そうかもしれませんが、いかにも、理屈はわかってますが実践してません、という人のような意見のような気がした。
実際は、そんなことしなくない?
僕の場合は、特別な場合を除けば、せいぜい読み書き用と、読み取り専用の2ユーザーを用意するくらいかなぁ。
標準 SQL 92 で定義されてるために、どの RDBMS でも Grant/Revoke が使えるようになってるけど、ものすごく使われてないような気がするのは僕だけ?
いや、本当は僕が無知だけなのかもしれないけど。
いずれにせよ、機能としてあるんだから Grant/Revoke と Role をうまく使って「なるほど、こういう風に使うのか」と感心されてみたいものではあるが。
Grant/Revoke(Role) が使われてないのは、視覚的にわかり辛いからなんでは、と思っているところ。
RDB を設計する場合は、いつも権限を細かく設計してるって人は、どんな感じに(どれくらい権限を細分化して)設計してるか教えてください。
コメント 0