LoginSignup
1
1

More than 1 year has passed since last update.

Microsoft SQL Serverの認証モード切替をコマンドラインから行う方法(Windows版)

Last updated at Posted at 2019-01-10

はじめに

Microsoft SQL Server(以後MSSQL)のインストール初期段階で、認証方式を選択する所がある。
この認証方式を、インストールされた後から切り替えたい場合についての手順を書いておく。

認証方式について(Windows)

Linux版は未確認だが、Windows版のMS SQL Serverには、ログインユーザーの認証方式は以下のものがある。

  • SQL認証
    • MSSQL自身が認証用データベースを持ち、ログイン管理する方式
    • PostgreSQLでいう所のpostgresにあたるsaアカウントもこれに含まれる
  • Windows認証
    • MSSQLからシステム(この場合Windowsユーザー)にユーザーの正当性を認証依頼を出す方式
    • AD等との連携が可能
    • C#のMSSQL接続情報でIntegratedSecurity=trueにするとこちらが使用される
    • PostgreSQLでいう所のpeerに近いかもしれない

問題は、デフォルトでSQL認証は無効となっている点である。なお、Windows認証を無効にする方法は不明。
このため、SQL認証が前提のシステムだと、ログインができなくなる(エラーコード18456)。
そのため、うっかりSQL認証を無効にしてインストールしてしまった場合、これを切り替える必要が出てくる。

インストール後の切り替え方法

基本的に MS公式の"サーバー認証モードの変更" というドキュメントに従えば問題ない。
だが、リンク先の方法だとどうしてもSSMSでサーバーオプションを切り替える必要がある。
サーバーの制約でSSMSを使用できない場合、この方法は使えない

では、どうすればいいかというと下記のようにする

  1. レジストリを以下のように書き換える
  2. SQL Serverサービスを再起動する
  3. 必要ならば、SQLCMDを使い、alter login [ユーザー名] enableでログインユーザーを有効にする
  4. 必要ならば、SQLCMDを使い、alter login [ユーザー名] with PASSWORD='[パスワード]'でパスワードを設定する
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1