1

Windows認証(管理者)を使用してSQLServerに接続しました。

次に、SQL Server2005Expressのログインを次のように作成しました。

CREATE LOGIN bob WITH PASSWORD = 'bobpass'. 

ここで、SQL Serverを閉じてから再度開き、今回はログイン「bob」で接続しました。

今、私はこれを実行しました:SELECT CURRENT_USER.

それは出力を与えました:ゲスト

なぜそうなのか?

ログイン内にユーザーを作成しなかったためbobですか?

4

1 に答える 1

3

CURRENT_USER は、データベース プリンシパル (ユーザー) を返します。bobサーバープリンシパル (ログイン) です。データベースへのアクセスを許可せず、ビルトイン サーバー セキュリティ グループに bob を追加しなかった場合、bob は master と tempdb 以外のデータベースにアクセスできません。これらの 2 つのデータベースでは、彼は として認識されguestます。これはデフォルトです。新規インストールからデプロイメントに何か変更があった場合、この説明との違いに気付くかもしれません (たとえばbob、これらのデータベースが有効になっているため、 がより多くのデータベースにアクセスできることがわかる場合がありますguest)。

つまり、基本的には正しいと思います:彼bobguest明示的なデータベース プリンシパル (ユーザー) を持っておらず、メンバーでもありませんsysadmin(この場合、彼はdboすべてのデータベースに存在します)。

于 2011-02-26T06:14:34.690 に答える