管理连接
列出所有网络连接
过程 dbms.listConnections
列出所有已接受的,针对所有已配置连接器的网络连接,包括 Bolt、HTTP 和 HTTPS。一些列出的连接可能永远不会执行身份验证。例如,对 Neo4j 浏览器端点的 HTTP GET 请求会获取静态资源,不需要身份验证。但是,使用 Neo4j 浏览器建立的连接要求用户提供凭据并执行身份验证。有关 Neo4j 浏览器连接的更多信息,请参阅Neo4j 浏览器文档。
语法
CALL dbms.listConnections()
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
这是网络连接的 ID。 |
|
字符串 |
这是开始连接的时间。 |
|
字符串 |
接受连接的连接器的名称。 |
|
字符串 |
这是发起连接的用户用户名。如果事务是使用嵌入式 API 发出的,则此字段将为 null。如果连接未执行身份验证,它也可能为 null。 |
|
字符串 |
已连接软件的名称。对于 HTTP 和 HTTPS 连接,此信息是从 |
|
字符串 |
此连接连接到的服务器地址。 |
|
字符串 |
连接的客户端地址。 |
Neo4j 客户端代理 | userAgent 默认字符串格式 |
示例 |
---|---|---|
Cypher Shell |
|
|
Neo4j 浏览器 |
|
|
Neo4j Bloom |
|
|
Neo4j Java 驱动 |
|
|
Neo4j .Net 驱动程序 |
|
|
Neo4j Go 驱动程序 |
|
|
Neo4j Python 驱动程序 |
|
|
Neo4j JavaScript 驱动程序 |
|
|
以下示例显示用户“alwood”正在使用 Java 驱动程序和 Firefox 网络浏览器连接。过程调用会生成有关连接的特定信息,即connectionId
、connectTime
、connector
、username
、userAgent
和clientAddress
。
CALL dbms.listConnections() YIELD connectionId, connectTime, connector, username, userAgent, clientAddress
╒══════════════╤══════════════════════════╤═══════════╤══════════╤════════════════════════════════════════════════════════════════════════════════════╤═════════════════╤═════════╕ │"connectionId"│"connectTime" │"connector"│"username"│"userAgent" │"clientAddress" │"status" │ ╞══════════════╪══════════════════════════╪═══════════╪══════════╪════════════════════════════════════════════════════════════════════════════════════╪═════════════════╪═════════╡ │"bolt-21" │"2018-10-10T12:11:42.276Z"│"bolt" │"alwood" │"neo4j-java/1.6.3" │"127.0.0.1:53929"│"Running"│ ├──────────────┼──────────────────────────┼───────────┼──────────┼────────────────────────────────────────────────────────────────────────────────────┼─────────────────┼─────────┤ │"http-11" │"2018-10-10T12:37:19.014Z"│"http" │null │"Mozilla/5.0 (Macintosh; Intel macOS 10.13; rv:62.0) Gecko/20100101 Firefox/62.0"│"127.0.0.1:54118"│"Running"│ └──────────────┴──────────────────────────┴───────────┴──────────┴────────────────────────────────────────────────────────────────────────────────────┴─────────────────┴─────────┘ 2 rows
终止多个网络连接
语法
CALL dbms.killConnections(connectionIds)
参数
名称 | 类型 | 描述 |
---|---|---|
|
List<String> |
这是要终止的所有连接的 ID 列表。 |
返回值
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
这是已终止连接的 ID。 |
|
字符串 |
这是发起(现在已终止)连接的用户名称。 |
|
字符串 |
一条消息,说明是否成功找到连接。 |
注意事项
Bolt 连接是有状态的。终止 Bolt 连接会导致正在进行的查询/事务终止。 |
终止 HTTP/HTTPS 连接可能会终止正在进行的 HTTP/HTTPS 请求。 |
以下示例显示管理员已终止 ID 为“bolt-37”和“https-11”的连接,分别由用户“joesmith”和“annebrown”启动。管理员还尝试终止 ID 为“http-42”的连接,但该连接不存在。
CALL dbms.killConnections(['bolt-37', 'https-11', 'http-42'])
╒══════════════╤═══════════╤══════════════════════════════════╕ │"connectionId"│"username" │"message" │ ╞══════════════╪═══════════╪══════════════════════════════════╡ │"bolt-37" │"joesmith" │"Connection found" │ ├──────────────┼───────────┼──────────────────────────────────┤ │"https-11" │"annebrown"│"Connection found" │ ├──────────────┼───────────┼──────────────────────────────────┤ │"http-42" │"n/a" │"No connection found with this id"│ └──────────────┴───────────┴──────────────────────────────────┘ 3 rows
终止单个网络连接
语法
CALL dbms.killConnection(connectionId)
参数
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
这是要终止的连接的 ID。 |
返回值
名称 | 类型 | 描述 |
---|---|---|
|
字符串 |
这是已终止连接的 ID。 |
|
字符串 |
这是发起(现在已终止)连接的用户名称。 |
|
字符串 |
一条消息,说明是否成功找到连接。 |
注意事项
Bolt 连接是有状态的。终止 Bolt 连接会导致正在进行的查询/事务终止。 |
终止 HTTP/HTTPS 连接可能会终止正在进行的 HTTP/HTTPS 请求。 |
以下示例显示用户“joesmith”已终止其 ID 为“bolt-4321”的连接。
CALL dbms.killConnection('bolt-4321')
╒══════════════╤═══════════╤══════════════════╕ │"connectionId"│"username" │"message" │ ╞══════════════╪═══════════╪══════════════════╡ │"bolt-4321" │"joesmith" │"Connection found"│ └──────────────┴───────────┴──────────────────┘ 1 row
以下示例显示尝试终止不存在的连接 ID 时输出的结果。
CALL dbms.killConnection('bolt-987')
╒══════════════╤═══════════╤══════════════════════════════════╕ │"connectionId"│"username" │"message" │ ╞══════════════╪═══════════╪══════════════════════════════════╡ │"bolt-987" │"n/a" │"No connection found with this id"│ └──────────────┴───────────┴──────────────────────────────────┘ 1 row