Horizon環境の検証の一環で、Identity Managerの検証をしようとしているんですが、ドキュメントにあるスクリプトを実行しても、自分の環境だとうまく動かず…。
試行錯誤して、SQL Server Management Studio で手動設定したのを覚え書き。
- SysAdminロールを割り当てているユーザーでSQL Server Management Studioを起動し、オブジェクトエクスプローラーで「データベース」を右クリックして、新しいデータベースを作成する。
データベース名には、特に制限はなさそう。オプションのところで、「照合順序」を"Latin1_General_CS_AS"に変更。「その他のオプション」で、"Is Read Committed Snapshot On"の値を"True"に変更。 - 「セキュリティ」の下の「ログイン」を右クリックして、新しいログインを作成。
「全般」のところで、「ログイン名」に、事前にADに準備したドメインユーザーのアカウント名を指定。「既定のデータベース」を、前の手順で作成したデータベースに変更。
「サーバーロール」が"public"のみであることを確認(そうなってるはず)。
「ユーザーマッピング」のところで、上段の「このログインにマップされたユーザー」の項目、前の手順で作成したデータベースにチェックを入れて、「既定のスキーマ」に"saas"と入力。(スキーマの名前は固定みたい)
下段の「(選択したDB名)のデータベースロールメンバーシップ」で、"public"に加えて"db_owner"を追加。 - 「データベース」に戻って、作成したデータベースオブジェクトの下の「セキュリティ」のさらに下にある、「ユーザー」と「スキーマ」を展開して、手順2で作成したユーザーとスキーマが表示されていることを確認する。
この手順については、以下のサイトの記事を参考にさせて頂きました。
以下、おまけ。
試行錯誤中に、唯一sysadminロール持ってるユーザーからsysadminロールを外してしまい(saユーザーは無効のままでした…)、誰もsysadminをもってない状況になってしまいました。
以下のドキュメントを参考に復旧を試みようとしたのですが、ここでも大ハマり。
結論から言うと、自分の環境では、なぜか-mオプションがうまく効かず、-fオプションで再起動したら、管理者権限のコマンドプロンプトからsqlcmdで接続できるようになったので、元のアカウントにsysadminロールをつけなおして、事なきを得たのでした。
なんでうまくいかなかったんでしょうかねえ…。