# Microsoft SQL Serverのプラグイン

{% hint style="warning" %}
パスワードのローテーションには、KeeperPAMによるゼロトラスト方式もあります。ほとんどの用途では、そちらの利用を推奨します。詳細は以下をご参照ください。

* [KeeperPAMを使用したパスワードローテーション](/keeperpam/jp/secrets-manager/password-rotation.md)
* [コマンダーのKeeperPAMコマンド](/keeperpam/jp/commander-cli/command-reference/keeperpam-commands.md)
  {% endhint %}

このプラグインを使用すると、Microsoft SQL Serverのユーザーのパスワードをローテーションできます

## 前提条件

#### pymssqlのインストール

```
pip3 install pymssql
```

## ローテーション用のレコードを準備

### ローテーション用のレコードを作成

ローテーションは、従来のレコードにもタイプ指定されたレコードにも対応しています。 タイプ指定されたレコードを使用する場合は、「ログイン」タイプのフィールドが必要です。 ローテーションの種類に応じて、その他のフィールドを追加することもできます。 以下の手順をご参照ください。

{% hint style="info" %}
従来のレコードとタイプ指定のあるレコードの詳細については、[トラブルシューティング](/keeperpam/jp/commander-cli/troubleshooting-commander-cli.md#typed-vs-untyped-records-v3-vs-v2)をご参照ください。
{% endhint %}

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FBw54JmdTN7i155e9rTHY%2Fimage.png?alt=media&#x26;token=688ee24f-6377-49e3-bf02-d1fd962c1f93" alt=""><figcaption><p>完全なレコードの例。ローテーション用のレコードを設定するには、以下の手順に従ってください</p></figcaption></figure>

#### ローテーションするアカウントのユーザー名としてレコードのログインを設定します

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FphdcU3u4Vw65ewJudloK%2Fimage.png?alt=media&#x26;token=a97eb14f-a984-4ec1-ba2d-20b2e89ed31c" alt=""><figcaption></figcaption></figure>

#### ホスト名とポートを設定

Commanderはこれらの設定を使用して接続します。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FKqsYjCHxDlQ9yFh69ati%2Fimage.png?alt=media&#x26;token=28e69bd4-3de7-4550-8eb0-927662a8103b" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
ポートが1433に設定されている場合、またはホストが"mssql://"で始まる場合、Commanderはレコードを自動的にMicrosoft SQLのクレデンシャルとして認識し、特に設定されていない限り、そのローテーション方式を使用します
{% endhint %}

#### レコードのパスワードを一致したアカウントのパスワードに設定

Commanderはこのパスワードを使用してログインし、ローテーションを実行します。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2F5OgA3F22vbA06b6pgARY%2Fimage.png?alt=media&#x26;token=c72f8670-e3f9-40cf-8066-7ba4666a99c4" alt=""><figcaption></figcaption></figure>

#### カスタムフィールドにデータベース名を設定

「cmdr:db」というラベルのテキストタイプのカスタムフィールドを作成し、接続先のデータベースの名前を入力します。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FcHChhhiPXs1EmsnUWppI%2Fimage.png?alt=media&#x26;token=33445ad4-4411-4bde-8da6-9677d7c6180a" alt=""><figcaption></figcaption></figure>

#### オプションのカスタムフィールド

上記のフィールドを使用する代わりに、以下のラベルを使用してカスタムフィールドを追加できます

<table><thead><tr><th width="138">ラベル</th><th width="236">値</th><th>コメント</th></tr></thead><tbody><tr><td>cmdr:plugin</td><td>mssql</td><td>Microsoft SQLキーローテーションを使用するようにCommanderに指示します。 これは、レコードに設定するか、またはローテーションコマンドに指定する必要があります</td></tr><tr><td>cmdr:host</td><td></td><td>MSSQL serverのホスト名</td></tr><tr><td>cmdr:rules</td><td><p>「大文字の数, 小文字の数, 数字の数, 記号の数」</p><p>（たとえば、4,6,3,8）</p></td><td>パスワード生成ルール</td></tr></tbody></table>

#### オプションフィールドを使用したレコードの例

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FG3bcPe3gZCKttsDbfDMv%2Fimage.png?alt=media&#x26;token=6cf82cb0-8bd7-4e6c-b9aa-58e9cb433de6" alt=""><figcaption><p>MSSQLローテーション用に設定されたKeeperのレコード</p></figcaption></figure>

## ローテーション

MSSQLのパスワードをローテーションするには、Commanderで`rotate`コマンドを使用します。 コマンドにレコードタイトルもしくはUIDを渡します（複数のレコードを1度にローテーションさせるには、正規表現で`--match`を使用します）

```
rotate "MSSQL Example" --plugin mssql
```

{% hint style="info" %}
プラグインは、こちらに示すようにコマンドに指定することも、レコードのフィールドに追加することも、ポート番号に基づいて自動的に割り当てることもできます (上記のオプションを参照)。\
レコードにプラグインタイプを追加すると、プラグインの異なる複数のレコードを1度にローテーションできます。
{% endhint %}

#### 出力

ローテーションが完了すると、新しいパスワードがレコードの`パスワード`フィールドに格納されます


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/commander-cli/command-reference/plugins/microsoft-sql-server-plugin.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
