aoki_dの備忘録 ~私が知ってる何かは他の誰かが知ってる何か~

VDIを中心に、IT技術に関してちょこちょこ覚え書き

Identity Manager用MS SQL手動設定

Horizon環境の検証の一環で、Identity Managerの検証をしようとしているんですが、ドキュメントにあるスクリプトを実行しても、自分の環境だとうまく動かず…。

https://docs.vmware.com/jp/VMware-Identity-Manager/3.3/vidm_windows_install/GUID-8184612F-1C2D-4945-97DD-46CB963FC7B3.html

 

試行錯誤して、SQL Server Management Studio で手動設定したのを覚え書き。

  1. SysAdminロールを割り当てているユーザーでSQL Server Management Studioを起動し、オブジェクトエクスプローラーで「データベース」を右クリックして、新しいデータベースを作成する。
    データベース名には、特に制限はなさそう。オプションのところで、「照合順序」を"Latin1_General_CS_AS"に変更。「その他のオプション」で、"Is Read Committed Snapshot On"の値を"True"に変更。

  2. 「セキュリティ」の下の「ログイン」を右クリックして、新しいログインを作成。
    「全般」のところで、「ログイン名」に、事前にADに準備したドメインユーザーのアカウント名を指定。「既定のデータベース」を、前の手順で作成したデータベースに変更。
    「サーバーロール」が"public"のみであることを確認(そうなってるはず)。
    「ユーザーマッピング」のところで、上段の「このログインにマップされたユーザー」の項目、前の手順で作成したデータベースにチェックを入れて、「既定のスキーマ」に"saas"と入力。(スキーマの名前は固定みたい)
    下段の「(選択したDB名)のデータベースロールメンバーシップ」で、"public"に加えて"db_owner"を追加。

  3. 「データベース」に戻って、作成したデータベースオブジェクトの下の「セキュリティ」のさらに下にある、「ユーザー」と「スキーマ」を展開して、手順2で作成したユーザーとスキーマが表示されていることを確認する。


この手順については、以下のサイトの記事を参考にさせて頂きました。

https://zenmai.wordpress.com/2010/09/22/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%BB%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%9E%E3%83%BB%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8Bsql-server/

 

以下、おまけ。

試行錯誤中に、唯一sysadminロール持ってるユーザーからsysadminロールを外してしまい(saユーザーは無効のままでした…)、誰もsysadminをもってない状況になってしまいました。

 

以下のドキュメントを参考に復旧を試みようとしたのですが、ここでも大ハマり。

https://docs.microsoft.com/ja-jp/sql/database-engine/configure-windows/connect-to-sql-server-when-system-administrators-are-locked-out?view=sql-server-ver15

 

結論から言うと、自分の環境では、なぜか-mオプションがうまく効かず、-fオプションで再起動したら、管理者権限のコマンドプロンプトからsqlcmdで接続できるようになったので、元のアカウントにsysadminロールをつけなおして、事なきを得たのでした。

なんでうまくいかなかったんでしょうかねえ…。