none
ドメインユーザーのDBサーバーWindows認証方法 RRS feed

  • 質問

  • PCにローカルユーザーアカウントでログイン、DBサーバーはWindows認証で小規模業務システムを運用していました。
    先日、グループ本社のSEがPCをドメインに参加、かつログイン先をドメインに設定変更しました。
    DBサーバーのローカルユーザーにはドメインユーザーアカウントの登録がないので、DBのWindows認証が通らなくなりました。
    DBのWindows認証を通すにはどうすればよいでしょうか。
    ちなみに、DBサーバーはドメインコントローラでなく、かつドメインコントローラはグループ本社にあり、自社LAN上にはありません。

    ■動作環境
    ・Windows Server 2012くらい?(不明) + SQL Server 2017 Express
    ・Windows 7 (旧環境) ※ログイン -- LUsr1
    ・Windows 10(新環境) ※ログイン -- DomainA\DUsr1
    2020年4月4日 5:19

回答

  • DBサーバーがドメインに参加している場合は、SQL ServerにWindows ログイン (DomainA\DUsr1) を登録するのみで問題が解決するかと思います。

    仮にドメインに参加していない場合は、一般的には推奨されませんが、DB サーバー上のローカルにローカルユーザーとして 「DUsr1」を登録し、ドメインユーザー 「DomainA\DUsr1」と同じパスワードを設定した後、SQL Server 上に新たに作成したローカルユーザー 「DUsr1」を Windows ログインとして登録することで、パススルー認証により、認証が可能になるかと思います。

    また、DBサーバーがドメインに参加している場合は、ドメイン ユーザーの代わりに、ドメイン グループを SQL Server上にログインとして登録することで、すべてのドメインユーザーを登録する手間が省けるかと思います。

    一括で SQL Server にログインを追加したい場合は、コマンドを作成する手間がありますが、「CREATE USER」 コマンドを使用し、スクリプトで実行すると少しは手間が省けるかと思います。

    CREATE USER (Transact-SQL)
    https://docs.microsoft.com/ja-jp/sql/t-sql/statements/create-user-transact-sql?view=sql-server-ver15

    • 回答としてマーク Deer327 2020年4月5日 1:36
    2020年4月4日 16:04
  • >DBサーバーはドメインコントローラでなく、かつドメインコントローラはグループ本社にあり、自社LAN上にはありません。

    この記載はよく解りませんが、自社LANと本社LANが分かれていて、SQLServerからはDCにアクセスできない、という趣旨ですか?
    でなければ、SQLServerの載っているWindows ServerをDomainAに参加させて、SQLServerにDomainA\DUsr1へのログインを作成すれば終わる話では?
    それとも、スタンドアローンSQLServerへの接続としてNTLMにフォールバックして、Server2012\LUsr1としてログオンできる方法があるはず、というご質問でしょうか?


    jzkey

    • 回答としてマーク Deer327 2020年4月5日 1:36
    2020年4月4日 12:48

すべての返信

  • こちらの件ですが、SQLServerのサービスは起動している認識でよろしいでしょうか。

    サービスが起動しているのであれば、DBサーバにログインするときのユーザー指定として「.\ローカルのドメイン参加前に使っていたユーザー名」でローカルユーザーでログインしてManagement Studioを起動してアクセスすることはできませんか?

    ローカルユーザー指定の例え:.\Administrator

    • 編集済み kaz8629 2020年4月4日 5:58
    2020年4月4日 5:56
  • あの..ドメインユーザーで接続するにはどう設定すればいいのか、という質問ですよ。

    ローカルユーザー(旧環境)のWindows認証DB接続なら現状でもできてます。

    2020年4月4日 8:42
  • >DBサーバーはドメインコントローラでなく、かつドメインコントローラはグループ本社にあり、自社LAN上にはありません。

    この記載はよく解りませんが、自社LANと本社LANが分かれていて、SQLServerからはDCにアクセスできない、という趣旨ですか?
    でなければ、SQLServerの載っているWindows ServerをDomainAに参加させて、SQLServerにDomainA\DUsr1へのログインを作成すれば終わる話では?
    それとも、スタンドアローンSQLServerへの接続としてNTLMにフォールバックして、Server2012\LUsr1としてログオンできる方法があるはず、というご質問でしょうか?


    jzkey

    • 回答としてマーク Deer327 2020年4月5日 1:36
    2020年4月4日 12:48
  • jzkey様、ご返信ありがとうございます。

    >>DBサーバーはドメインコントローラでなく、かつドメインコントローラはグループ本社にあり、自社LAN上にはありません。

    >この記載はよく解りませんが、自社LANと本社LANが分かれていて、SQLServerからはDCにアクセスできない、という趣旨ですか?

    未確認ですがDBサーバーはドメインに参加している筈ですので、DCへのアクセスはできると思います。
    その記述をわざわざしたのは、私がActiveDirectoryの知識に乏しいので、DCがDBサーバーと同一LAN上にない場合、例えばVPNで繋がっていたとしても認証に関して何らかのマイナス要因などがあるかもと思い、ご提示しただけです。
    なお、当該システムは私のエンドユーザー様で、AD導入はグループ会社本社のシステム部門が行ったのものです。
    ご提示する情報があやふやなのはその為で、申し訳なく思っております。

    私がやりたい事は、AD導入前にできていたDBサーバーのWindows認証を、ドメインユーザーに対しても行えるようにしたいという事です。現在、DomainA\DUsr1は認証エラーでDBにアクセスできないので、その都度LUsr1に切り替えて運用しており面倒なのです。
    DomainA\DUsr1へのログインを作成すればよいとの事ですので、それを試してみます。
    テスト環境がなく、エンドユーザー様への訪問日が2週間以上先なのですが、結果がでたらご報告いたします。
    ご教示、ありがとうございました。

    なおローカルユーザーの場合、NT AUTHORITY\Authenticated Usersログインにて、Usersグループのユーザーを一括で認証できますよね。
    ご指摘の方法ですと、ユーザー数分のログインが必要になり大変そうです。
    ドメインユーザーを一括で認証できれば楽なのですが、ドメインメンバであるがDCではないDBサーバーの場合、それは無理なのでしょうか?

    • 編集済み Deer327 2020年4月4日 15:24
    2020年4月4日 15:10
  • DBサーバーがドメインに参加している場合は、SQL ServerにWindows ログイン (DomainA\DUsr1) を登録するのみで問題が解決するかと思います。

    仮にドメインに参加していない場合は、一般的には推奨されませんが、DB サーバー上のローカルにローカルユーザーとして 「DUsr1」を登録し、ドメインユーザー 「DomainA\DUsr1」と同じパスワードを設定した後、SQL Server 上に新たに作成したローカルユーザー 「DUsr1」を Windows ログインとして登録することで、パススルー認証により、認証が可能になるかと思います。

    また、DBサーバーがドメインに参加している場合は、ドメイン ユーザーの代わりに、ドメイン グループを SQL Server上にログインとして登録することで、すべてのドメインユーザーを登録する手間が省けるかと思います。

    一括で SQL Server にログインを追加したい場合は、コマンドを作成する手間がありますが、「CREATE USER」 コマンドを使用し、スクリプトで実行すると少しは手間が省けるかと思います。

    CREATE USER (Transact-SQL)
    https://docs.microsoft.com/ja-jp/sql/t-sql/statements/create-user-transact-sql?view=sql-server-ver15

    • 回答としてマーク Deer327 2020年4月5日 1:36
    2020年4月4日 16:04
  • NOBTA様、ご返信ありがとうございます。
    各種ケースを想定したご回答、大変参考になります。

    >また、DBサーバーがドメインに参加している場合は、ドメイン ユーザーの代わりに、ドメイン グループを SQL Server上にログインとして登録することで、すべてのドメインユーザーを登録する手間が省けるかと思います。

    ここがとても知りたかったところです。
    私はDCでドメインユーザーをDomain Usersグループ所属にすれば、NT AUTHORITY\Authenticated Usersログインで認証されると思っていたのですが、どうも違うようですね。

    DCのグループ設定などは管轄外でできませんので、今回は当該ユーザーのログインを作成する事で対応する事にします。
    グループ設定については、後日当方開発環境をAD化して検証したいと思います。
    検証はかなり先になりますが、他の方の参考になるかもしれませんので、結果がでればご報告いたします。
    ありがとうございました。
    2020年4月5日 2:13