dropConnections
定義
dropConnections
dropConnections
コマンドは、指定されたホストへのmongod
/mongos
インスタンスの送信接続を削除します。dropConnections
はadmin
データベースに対して実行する必要があります。
互換性
このコマンドは、次の環境でホストされている配置で使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
注意
このコマンドは、すべての MongoDB Atlas クラスターでサポートされています。 すべてのコマンドの詳細については、「サポートされていないコマンド 」を参照してください。
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
構文
コマンドの構文は次のとおりです。
db.adminCommand( { dropConnections: 1, hostAndPort : [ "host1:port1", "host2:port2", ... ], comment: <any> } )
コマンドフィールド
コマンドには次のフィールドが必要です。
フィールド | タイプ | 説明 |
---|---|---|
hostAndPort | 配列 | 各配列要素は、リモート マシンのホスト名とポートを表します。 |
comment | any | 任意。このコマンドに添付するユーザー指定のコメント。設定すると、このコメントは以下の場所にこのコマンドの記録と合わせて表示されます。
コメントには、有効な BSON 型(string, integer, object, array など)を使用できます。 |
アクセス制御
配置で 認証/認可dropConnections
が強制される場合、dropConnections
コマンドには クラスター リソースに対する アクションが必要です。
privilege
配列に次のドキュメントが含まれるadmin
データベースにユーザー定義ロールを作成します。
{ "resource" : { "cluster" : true } }, "actions" : [ "dropConnections" ] }
db.createUser()
を使用して、admin
データベースにカスタムロールを持つユーザーを作成します。or
db.grantRolesToUser()
を使用して、admin
データベース上の既存のユーザーにロールを付与します。
たとえば、次の操作では、 admin
データベースにdropConnections
をサポートする特権を持つユーザー定義ロールが作成されます。
db.getSiblingDB("admin").createRole( { "role" : "dropConnectionsRole", "privileges" : [ { "resource" : { "cluster" : true }, "actions" : [ "dropConnections" ] } ], "roles" : [] } )
以下のように、 admin
データベースのユーザーにカスタムロールを割り当てます。
db.getSiblingDB("admin").createUser( { "user" : "dropConnectionsUser", "pwd" : "replaceThisWithASecurePassword", "roles" : [ "dropConnectionsRole" ] } )
作成されたユーザーはdropConnections
を実行できます。
ユーザー作成のその他の例については、「自己管理型配置でのユーザーの作成 」を参照してください。 既存のデータベースユーザーへの特権の追加に関するチュートリアルについては、「既存ユーザーのアクセス権の変更 」を参照してください。
動作
dropConnections
は、リモートマシンのホスト名とポートの両方を含まないhostAndPort
要素を暗黙的に無視します。
例
最近削除されたメンバーを含むレプリカセット について考えてみoldhost.example.com:27017
う。 アクティブなレプリカセットの各ノードに対して次のdropConnections
コマンドを実行すると、 oldhost.example.com:27017
への送信接続が残りなくなります。
db.adminCommand( { "dropConnections" : 1, "hostAndPort" : [ "oldhost.example.com:27017" ] } )
このコマンドは、次のような出力を返します。
{ "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1551375968, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1551375968, 1) }
コマンドを使用して、mongod
またはmongos
connPoolStats
の接続プールのステータスを確認できます。