ログインとユーザ | 野良エンジニアの足跡

ログインとユーザ

SQL Server 2005、2000、7.0です。

たぶん6.5や2008も同じですが、未確認です。


SQL Serverのアカウント管理には、ログインとユーザがあります。

ユーザについては、データベースユーザと呼ばれることもあります。

この2種類の関係が理解できず、設定が脆弱になっているサーバを良く見かけます。


ログインというのは、SQL Serverサービスのインスタンスに対する認証です。

一方でユーザというのは、DBに対する認証です。

ですから、ログインのみ作成してユーザを作成しないと、サーバには繋がるがクエリが実行できない、などという事態になります。

また、ユーザのみ作成してログインを作成しないと、サーバに繋がらない事態になります。

適切なユーザと適切なログインを作成し、ユーザーマッピングで紐付ける必要があります。


ただ、通常は両方セットで作成しますし、ログインとユーザには同じアカウント名を使用することが多いため、あまり意識されないようです。

意識されないからこそ、いざ必要なときにトラブルになります。


ちなみに、ログインのみを作成してユーザを作成しない場合、ユーザとしてはデフォルトでguestのみにマッピングされます。

その場合、デフォルトではmodel以外のシステムデータベースではguestが有効なため、それらのDBにのみ接続できます。

逆に接続先DBや規定のDBの設定がユーザの権限が無いDBの場合、接続時に規定のデータベースが開けない旨のエラーでログインに失敗します。


上記を理解した上で、ログインとユーザの権限をそれぞれ適切に設定する必要があります。

が、それらはまた長くなりますので、機会があればその時に。