Date: Fri, 15 Feb 2002 18:57:49 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、今晩は
-----Original Message-----
From: H.Mizuguchi [mailto:who@example.co.jp]
Sent: Friday, February 15, 2002 5:44 PM
To: who@example.ne.jp
Subject: [ml-msde-beg:00069] Re: ユーザー権限の作成方法について
>わたしはVB使いで、ユーザーとパスワードは固定でアプリに埋め込んで
>いるため、セキュリティ周りがよくわかっていませんでした(って、今
>でもあまりわかっていないのですが)。なんか複雑ですっきりしないの
>ですが、堀川さんの黄色本を再読して勉強してみます。ありがとうござ
>いました。
セキュリティ設計で私がよく行なう方法は、
(1)ベーステーブルに対する権限は、何も設定しない。
一般ユーザは、その結果何の操作もできない。
SELECT権限やINSERT権限、UPDATE権限など全部ダメ。
(2)ストアドプロシージャを準備する
一般ユーザは、すべてのデータベース操作をストアドプロシージャ
経由で行なう。
一般ユーザ(Publicロール)に対して、ストアドプロシージャの実行
権限を付与する。
ストアドプロシージャに実行権限を付与するとベーステーブルに
対する操作が可能になるので、ストアドプロシージャの中で、その
ストアドプロシージャを呼び出したデータベースユーザの所属ロール
チェックやセキュリティチェックを行う。
テーブルAのSELECT権限を許可したい場合は、A_SELECT のような
データベースロールを登録し、その中にユーザ登録をします。
ストアドプロシージャの中で、呼び出したデータベースユーザが、
A_SELECTデータベースロールに所属していれば、SELECT文を
実行します。
大規模なデータベースになると、データベースユーザが増えて
セキュリティ管理が煩雑になりますので、ユーザ定義のデータ
ベースロールを活用するのがポイントです。
もちろんストアドプロシージャを使わずに、ベーステーブルに対して、
データベースロールのセキュリティ設定を行なっても構いません。
ただ、データベースロールを使ってセキュリティ設計を行う場合は、
アプリケーションの中に、ログイン名やパスワードを埋め込むと、
データベースサーバー側でデータベースユーザの識別が出来なく
なります。
ログイン名とパスワードはアプリケーション使用者が入力するように
しましょう。
------------------------------------
(株)日本技術ソフト開発
堀川 明 (Akira Horikawa)
02月15日(金曜日) 18時57分記
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|