WindowsでSQL Serverをインストールし、データベース、ユーザーを作成する
初めに
AzureにSQL Serverを立ち上げてWebアプリケーション開発を行っていたのですが、ローカルのネットワークに変更があり1433ポートでの外部アクセスができなくなりました。
そこで、ローカルのWindows11にSQL Serverを立ち上げて開発環境を作成しました。
私自身にリレーショナルデータベースの知見があまりなかったこともあり非常に時間がかかったので、Windows上にSQL Serverを立ち上げユーザーを作成する方法を手順として残しました。
想定環境
以降の手順ははすべてWindows11 23H2上で行います。
インストールするソフトウェア
以下のソフトウェアをインストールします。
- SQL Server 2022
- SQL Server Management Studio (SSMS) 19.3
SQL Serverのインストール
ダウンロードページからダウンロード可能です。
Developer EditionとExpress Editionの違い
無料で利用可能なエディションとしてDeveloper EditionとExpress Editionの2つがありますが、それぞれ以下のような特徴があります。
Edition | 特徴 |
---|---|
Developer Edition | Enterprise Editionと同等の機能が含まれますが、開発及びテストの利用に対してのみライセンスが与えられます。 |
Express Edition | エントリレベルの機能のみ含まれ、開発、テスト、小規模アプリケーションに使利用できます。 |
Developer EditionとExpress Editionの機能についての詳細な違いはSQL Server 2022 の各エディションとサポートされている機能を参照してください。
今回はローカルでの開発に使用するのでWindows版のDeveloper Editionをインストールします。
インストール手順
ダウンロードページのインストールするエディションの今すぐダウンロード
をクリックすると実行ファイルがダウンロードされるので実行します。
以下の画面が表示されるので今回は基本
を選択します。
同意する
を選択します。
インストール
をクリックします。
トラブルシューティング(IsFirewallEnabled)
Windows11の場合、インストール時に以下のエラーが発生し、インストールに失敗する場合があります。
Exit code (Dicimal): -2061893606Error
原因調査
SQL Server インストール ログ フォルダー
のSystemConfigurationCheck_Report.htm
を開き原因を調査します。
私の場合、IsFirewallEnabled
に警告が出ていました。
以下の手順に従ってFirewallの設定を行います。
Firewall設定
SQL Serverで使用する1433、1434ポートのインバウンドアクセスを許可するルールを作成します。
1433、1434ポートはそれぞれ以下の用途に使用されます。
ポート | 用途 |
---|---|
1433 | インスタンスへのTCP経由での通常の接続に使用されます。 |
1434 | 専用管理者接続(DAC)に使用されます。 |
各ポートの用途はSQL Server で使用されるポートを参照してください。
Powershellを管理者権限で開き、以下のコマンドを実行します。
> New-NetFirewallRule -DisplayName "SQLServer default instance" -Direction Inbound -LocalPort 1433 -Protocol TCP -Action Allow
> New-NetFirewallRule -DisplayName "SQLServer Browser service" -Direction Inbound -LocalPort 1434 -Protocol UDP -Action Allow
以下のコマンドを実行し、正常に登録できているか確認します。
> Get-NetFirewallRule | Where-Object DisplayName -Like 'SQLServer*'
Name : {deea096d-b5df-477d-a93c-a80c52e23d16}
DisplayName : SQLServer default instance
Description :
DisplayGroup :
Group :
Enabled : True
Profile : Any
Platform : {}
Direction : Inbound
Action : Allow
EdgeTraversalPolicy : Block
LooseSourceMapping : False
LocalOnlyMapping : False
Owner :
PrimaryStatus : OK
Status : 規則は、ストアから正常に解析されました。 (65536)
EnforcementStatus : NotApplicable
PolicyStoreSource : PersistentStore
PolicyStoreSourceType : Local
RemoteDynamicKeywordAddresses : {}
PolicyAppId :
Name : {738e8387-687c-4284-9674-0099d475c685}
DisplayName : SQLServer Browser service
Description :
DisplayGroup :
Group :
Enabled : True
Profile : Any
Platform : {}
Direction : Inbound
Action : Allow
EdgeTraversalPolicy : Block
LooseSourceMapping : False
LocalOnlyMapping : False
Owner :
PrimaryStatus : OK
Status : 規則は、ストアから正常に解析されました。 (65536)
EnforcementStatus : NotApplicable
PolicyStoreSource : PersistentStore
PolicyStoreSourceType : Local
RemoteDynamicKeywordAddresses : {}
PolicyAppId :
参考記事: SQL Server のアクセスを許可するための Windows ファイアウォールの構成
Firewallの設定が完了したら、再度SQL Serverをインストールします。
インストールが完了すると以下の画面が表示されます。
接続文字列は後程使用するのでコピーして控えておきます。
閉じる
をクリックしてください。
終了しますか?
と表示されるのではい
をクリックします。
SQL Server Management Studio(SSMS)のインストール
SQL Server Management Studio (SSMS) は、SQL インフラストラクチャを管理するための統合環境です。
SSMSを使用することでデータベースの管理がGUIから行えるようになります。
参考記事: SQL Server Management Studio (SSMS) とは何か?
インストール手順
ダウンロードページからインストーラーをダウンロードし、実行します。
以下の画面が表示されるので、インストール
をクリックします。
インストールが完了すると以下の画面が表示されるので、閉じる
をクリックします。
データベースの作成
上記手順でインストールしたSQL ServerにSSMSを使用してデータベースを作成します。
データベース作成手順
上記手順でインストールしたSSMSを起動します。
接続画面が表示されるので、SQL Serverインストール時に控えた接続文字列のServer=
に続く文字列をサーバー名に入力します。
認証はWindows認証
を選択します。
入力完了後接続
をクリックします。
接続に成功すると以下の画面が表示されます。
オブジェクトエクスプローラー内のサーバー名の配下にあるデータベース
を右クリックし、新しいデータベース
をクリックします。
データベース名に任意の値を入力し、OK
をクリックします。
以下のようにデータベースが作成されます。
ログイン、データベースユーザーの作成
SQL Serverを操作するにはログインとデータベースユーザーの2つが必要となります。
以下にそれぞれの役割を記載します。
名前 | 役割 |
---|---|
ログイン | インスタンス(SQL Server全体)にログインするのに使用します。 |
データベースユーザー | データベースごとに作成し、データベースを操作するのに使用します。 |
ログインの作成手順
オブジェクトエクスプローラー内のサーバー名、セキュリティ
の配下にあるログイン
を右クリックし、新しいログイン
をクリックします。
全般
を選択し、以下の情報を入力します。
項目名 | 入力内容 |
---|---|
ログイン名 | 任意の値 |
SQL Server認証 | チェックを入れる |
パスワード、パスワードの確認入力 | 任意の値、パスワードポリシーを参考にパスワードを入力する |
パスワードポリシーを適用する | チェックを入れる |
パスワードの期限を適用する | チェックを外す |
次回ログイン時のパスワード変更を必須にする | チェックを外す |
既定のデータベース | 上記手順で作成したデータベース |
情報の入力が完了したらOK
をクリックします。
以下のようにログインが作成されます。
参考記事: ログインの作成
データベースユーザーの作成手順
オブジェクトエクスプローラー内のサーバー名、データベース
、上記手順で作成したデータベース、セキュリティ
の配下にあるユーザー
を右クリックし、新しいユーザー
をクリックします。
全般
を選択し、以下の情報を入力します。
項目名 | 入力内容 |
---|---|
ユーザーの種類 | ログインが設定されたSQLユーザー |
ユーザー名 | 任意の値 |
ログイン名 | 上記手順で作成したログイン名 |
次にメンバーシップ
を選択します。
今回はテーブルの作成、レコードの追加、更新、削除、閲覧が可能なユーザーを作成したいので、db_accessadmin
、db_datareader
、db_datawriter
にチェックを入れます。
各ロールでは以下の操作が可能です。
各ロールについての詳細はデータベース レベルのロールを参照してください。
入力が完了したらOK
をクリックします。
以下のようにデータベースユーザーが作成されます。
参考記事: データベース ユーザーの作成
終わりに
今回はSQL ServerをWindows11にインストールし、データベース、ログイン、ユーザーを作成するところまで説明しました。
今後私を含む誰かの役に立てば幸いです。
Discussion