1.概要

データベースの SQL Server の sa パスワードを聞かれることがある。
業務用のソフト等を使用していると、ソフトのバージョンアップをする時などにそのような画面が出て先に進めないことがある。
その場合、どうすればいいのか?

SQL Server はマイクロソフトのデータベースで、業務用のデータベースとして広く使われている。
これには2つの認証モードがある。「Windows認証」と「SQL Server 認証」である。
Windows 認証は OS 側の認証で、SQL Server のデフォルトの認証である。
一方、SQL Server 認証はその専用のユーザーとパスワードによる認証である。
この SQL Server 認証のアカウントを管理する管理者ユーザーが sa である。
sa は SQL Server の最高権限を持っている。
この sa のパスワードがシステムのバージョンアップ等で必要なことがあり、システム管理を業者に丸投げにしていると担当者が急にいなくなったり業者がつぶれた時にそのパスワードがわからなくなってどうしようもなくなることがある。
通常 sa は推奨しないので使えないように無効になっているのだが、様々な都合で、最高権限の sa を有効にされていることがある。

2.現象

例えばあるシステムのバージョンアップをしようとすると、バックアップをするために下のようなウィンドウが表示されることがある。

パスワードがわからないのでそのまま進めると、
下のようなエラーメッセージが出てバージョンアップができない。
「ユーザー'sa'はログインできませんでした。」と書かれている。

3.対応方法

sa がログインできないとどうしようもないので、saのパスワードを強制的に変更するしかない。
方法はいくつかあるが、一番簡単なのは「Microsoft SQL Server Management」を使う方法である。

まず、スタートの「アプリ」の中から今回は「Microsoft SQL Server 2016」の中にある「Microsoft SQL Server Management Studio」を探して開く。

しばらくすると「サーバへの接続」の画面が出るので、「Windows認証」のまま「接続」をクリックする。

左側のオブジェクトエクスプローラーで「セキュリティ」-「ログイン」を押すと「sa」が 見つかる。
デフォルトでは無効になっているはずだが、×マークがついていないため有効になっているようだ。

「sa」を右クリックして「プロパティ」をクリックします。

すると、ログインのプロパティが開き、パスワードを変更することができる。

もう一つの方法を紹介するとプロンプトを使用する方法である。
まず「スタート」-「ファイル名を指定して実行」を押す。

「cmd」と入力して「OK」

すると、このようなコマンドプロンプトが表示される。

ここで、「osql -S (コンピュータ名)\(インスタンス名) -E」と入力して「Enter」キーを押す。

コンピュータ名はパソコンの名前やサーバー名になる。
インスタンス名はシステムから指定された名前を入れる。
先程の「Microsoft SQL Server Management」でも同じようにコンピューター名とインスタンス名を確認することができる。

コンピューター名:COMPUTER01、インスタンス名:SQLEXPRESS とすると、きちんとコマンドのスペースを入れてやり、「osql -S COMPUTER01\SQLEXPRESS -E」と入力して「Enter」キーを押すことになる。

すると下のような画面に「1>」が表示される。

「sp_password @new = '新しいパスワード', @loginame = 'sa'」と入力します。
今回は
「sp_password @new = 'abcde12345', @loginame = 'sa'」と入力して「Enter」しました。
「=」の前後や「@」の前にはスペースを空けないとエラーになります。

「go」と入力して「Enter」キーを押します。

「quit」または「exit」で「Enter」して抜けます。

正しくパスワードが変更されているか確認するには下のように入力します。
コマンドプロンプトで以下の操作を行う。
「osql -S (コンピュータ名)\(インスタンス名) -U sa -P (パスワード)」と入力して「Enter」キーを押す。
今回は「osql -S COMPUTER01\TIMEPRONX -U sa -P abcde12345」と入力して「Enter」キーを押す。

「1>」が表示されたら、新しいパスワードで接続されていることが確認できます。

あとは動作確認である。
今回はある業務用システムのバージョンアップをしようとすると、エラーが出ていたので、今回変更後のパスワードを入れて動作するか確認してみる。

無事に処理が進んでいる。

正常に処理がされた。

おすすめの記事