- - PR -
SQL Serverのデータベースユーザに複数のログインユーザを関連づけたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-12-13 16:44
<環境>
Windows 2000 SQL Server 2000 SP2 <経緯> @データベースにユーザーが1つ作成されているが、 ログインユーザと関連付けされていない。 Aログインユーザにはパスワードが指定されていない。 (空でログインできる) Bログインユーザはデータベースにログインしているだけな為、 オブジェクトには、「データベースユーザ.オブジェクト名」 でアクセスしている。 Cパスワードなしでデータベースにアクセスできることが、 良くない(当然ですが)と指摘された。 D参照系のPGはエンドユーザーが作成したAccessのプログラム 等が存在するため、ログインユーザ、パスワードを容易に変更 できないため、現在のパスワードなしログインユーザを参照権限 のみに限定する E更新系のPGは更新用のログインユーザをパスワード付で作成し PGのログイン部分を全て修正する <疑問> @同一データベースユーザに対し、複数のログインユーザを関連づけ、 ログインユーザ毎に権限を設定することは可能なのだろうか? A現在、データベースユーザにログインユーザが関連づけされていない 状態は正しいのだろうか? (現在の状態で他社より引き継いでしまったため原因は?) どなたか、アドバイスお願いします。 | ||||
|
投稿日時: 2007-12-13 16:46
先ほどの投稿
環境に間違いがありました Windows 2000 → Windows 2000 Server です | ||||
|
投稿日時: 2007-12-13 17:26
まず@の件ですが、ログインユーザー毎に権限を付与したければ、同数のデータベース ユーザーを作成するしかありません。 次にAですが、データベースユーザーにログインユーザーを関連づけるか否かは、 手法の問題ですのでどちらとも言えません。 私の経験ではシステムへのログインは行いますが、データベースのユーザーを複数 使用している所はそうありませんでした。 (要はユーザー管理の為のテーブルを作成し、PG起動時に登録されているユーザー名・ パスワードでテーブル内の登録情報をチェックする。 その為データベースユーザーは一つを使いまわし。) ログインユーザーに対しデータベースユーザーを作成する場合、データベースを使用 する人数が少なければ問題ありませんが、新人が入社したり中途で人が入社した際に、 データベースユーザーを新規に作成する必要が発生します。 (もちろん人事異動で異動となった場合は、その方のユーザー情報を消去する必要も あります。) 但し、情報漏洩等のセキュリティに関する面で危惧されているのであれば、現在の 運用形態そのものを見直す必要があるかと思います。 運用形態によってはデータベースユーザーを作らなくても済む場合がありますしね。 | ||||
|
投稿日時: 2007-12-13 17:54
少し試してみたところ、以下の手順で実現できそうなのですが、
この方法はOKなのでしょうか? @新規に更新系用ログインユーザを作成 ・パスワード付 ・サーバーの権限ロールを全てチェック ・データベースユーザに関連づけない A参照系用にデータベースユーザを作成 ログイン名=既存のログインユーザ名 ロール内権限を「Public」と「db_datareader」のみに設定 これで既存のログインユーザは参照系用のデータベースユーザに ログインすることになり、更新が不可能になりました。 (これまで「データベースユーザ.オブジェクト名」で、 オブジェクトにアクセスしていたので、PGはそのまま 使えるかと) 新規に作成した更新系用のログインユーザーは、これまでの 既存ログインユーザ同様のアクセス方法になるので、更新が できるようになりました。 ただ、データベースユーザにログインしていない状態で更新 ができてしまうのはなぜでしょうか? |
1