STEP 3. ログイン アカウントと SQL Server レベルの権限
3.3 管理者アカウント
ています。SQL Server のインストール時に、セキュリティ モードで Windows 認証モードを選 択している場合は、「無効」に設定された状態で作成されます。
無効なログイン アカウント
ログイン アカウントは、「無効」に設定して、そのアカウントでログインできないように設定する こともできます。SQL Server のインストール時に Windows 認証モードを選択している場合は、
sa アカウントは、「無効」に設定されて登録されています。無効に設定されたアカウントは、次の ように表示されます。
アカウントの「有効」と「無効」を切り替えるには、ログイン アカウントの[プロパティ]ダイ アログから行うことができます。ただし、セキュリティ モードが Windows 認証モードに設定さ れている場合は、SQL Server 認証用のログイン アカウントを「有効」に設定したとしても、利 用することはできません(Step 2 の最後で SqlUser01 ログイン アカウントがログインに失敗 することを確認しました)。これは、sa アカウント(管理者アカウント)であっても例外ではあり ません。
sa アカウントの有効化
それでは、これを試してみましょう(この手順は、Administrator として Windows へログオン した状態で行う必要があります)。
1. まず、Management Studio を起動して、[ログイン]フォルダーにある「sa」アカウントを ダブル クリック(または、右クリックして[プロパティ]をクリック)します。
2. [ログインのプロパティ]ダイアログが表示されたら、[状態]ページを開き、[ログイン]を
「無効」に設定されて いるアカウントは、
赤い矢印が表示される
ダブル クリック 1
3. 続いて、[全般]ページを開いて、[パスワード]と[パスワードの確認入力]へ「P@ssword」
など、任意のパスワードを入力して、[OK]ボタンをクリックします。
これで、sa アカウントを「有効」な状態へ変更することができます。
Note: sa のパスワードは必ず設定するように
1
2
1
2
3
sa アカウントでのログイン
続いて、有効化した sa アカウントを使用して、SQL Server へログインできるかどうかを試して みましょう。
1. まずは、次のようにツールバーの[データベース エンジン クエリ]ボタンをクリックます。
[データベース エンジンへの接続]ダイアログでは、[認証]へ「SQL Server 認証」を選 択して、[ログイン]へ「sa」、[パスワード]へ「P@ssword」と入力し、[接続]ボタンを クリックします。
結果は、次のようにエラー メッセージが表示されて、ログインに失敗することを確認できま す。
セキュリティ モードが「Windows 認証モード」の場合は、sa であってもログインするこ とはできません。
メッセージを確認後、[OK]ボタンをクリックしてダイアログを閉じ、[データベース エンジ ンへの接続]ダイアログで、[キャンセル]ボタンをクリックします。
混合モードへの変更
次に、セキュリティ モードを「混合モード」へ変更した場合の動作を確認してみましょう。
1. 混合モードへ変更するには、オブジェクト エクスプローラーから、次のように SQL Server の名前を右クリックして[プロパティ]をクリックします。
2
3 1
1
[サーバーのプロパティ]ダイアログが表示されたら、[セキュリティ]ページを開いて、「SQL Server 認証モードと Windows 認証モード」を選択して、[OK]ボタンをクリックします。
2. これにより、再起動を促すダイアログが表示されるので、[OK]ボタンをクリックします。
3. 続いて、SQL Server を再起動して、セキュリティ モードの変更を有効化します。SQL Server
を再起動するには、オブジェクト エクスプローラーで SQL Server の名前を右クリックして
[再起動]をクリックします。
2
3
4 1
1
1 2
再起動が完了すると、セキュリティ モードが「混合モード」へ変更されて、Windows 認証 でも、SQL Server 認証でもログインができるようになります。
sa アカウントでのログイン
混合モードへ変更後、sa アカウントを使用して、ログインできかどうかを試してみましょう。
1. まずは、ツールバーの[データベース エンジン クエリ]ボタンをクリックます。
[データベース エンジンへの接続]ダイアログでは、[認証]へ「SQL Server 認証」を選 択して、[ログイン]へ「sa」、[パスワード]へ「P@ssword」と入力し、[接続]ボタンを クリックします。
2. 今度は、エラーにならず、次のようにクエリ エディターが起動して、画面右下へ「sa」と表 示され、sa アカウントとして SQL Server へのログインが成功したことを確認できます。
3. 次に、「sampleDB」データベースへ接続して、「社員」テーブルのデータを参照できるかど うかを確認してみましょう。次のように入力します。
2
3 1
クエリ エディター が起動 1
「sa」と表示 される 2 saで接続した クエリ エディター
USE sampleDB SELECT * FROM 社員
結果ウィンドウへは、「社員」テーブルのデータが表示されて、問題なくデータを参照できた ことを確認できます。
このように、SQL Server の管理者アカウントの場合は、3 つのセキュリティ チェックに関 係なく、SQL Server に対してあらゆる操作を実行することが可能です。
Note: Windows 認証モードを推奨
セキュリティ モードは、Windows 認証モードを利用することをお勧めします(Windows 認証モードは、マイク ロソフトが推奨するセキュリティ モードです)。理由は、Windows 認証モードのほうが、混合モードよりもセキ ュリティを向上させることができるためです。混合モード(SQL Server 認証)を利用した場合は、VB や C# で
ADO.NET を使用して、記述されたアプリケーションは、次のようにログイン アカウントの名前とパスワードを
アプリケーション内へ記述しなければなりません。
Using cn As New SqlConnection("Server=localhost;Database=sampleDB;User ID=sa;Password=P@ssword") cn.Open()
: End Using
この文字列(接続文字列と呼ばれます)は、別ファイル(App.Config など)へ保管して、さらに暗号化すること も可能ですが、ログイン アカウントの名前とパスワードがネットワーク上に流れるリスクを考慮しなければなり ません(ネットワーク通信を暗号化するなど)。
これに対して、Windows 認証での接続の場合は、次のようにアプリケーション内へパスワードを記述する必要は ありません。
1 2
3