ArangoDB 密码似乎没有任何作用
ArangoDB password doesn't seem to do anything
我正在为一个项目测试 ArangoDB。
我已经通过自制软件安装了 ArangoDB,我可以 运行 它没有任何问题,实际上非常好。
我有一个关于安全的小问题,我正在努力解决。
当我创建一个新数据库(我使用的是 Web 界面)时,系统要求我提供数据库名称以及用户名和密码。
我输入的用户名和密码似乎并不重要,我总是能够登录它而无需任何提示输入密码。
例如,我使用默认用户 root 和一些随机密码创建了一个数据库,我可以使用 arangosh 正常登录,没有问题。
arangosh --server.database test1
_
__ _ _ __ __ _ _ __ __ _ ___ ___| |__
/ _` | '__/ _` | '_ \ / _` |/ _ \/ __| '_ \
| (_| | | | (_| | | | | (_| | (_) \__ \ | | |
\__,_|_| \__,_|_| |_|\__, |\___/|___/_| |_|
|___/
arangosh (ArangoDB 2.7.1 [darwin] 64bit, using ICU 54.1, V8 4.3.61, OpenSSL 1.0.2d 9 Jul 2015)
Copyright (c) ArangoDB GmbH
Pretty printing values.
Connected to ArangoDB 'tcp://127.0.0.1:8529' version: 2.7.1 [standalone], database: 'test1', username: 'root'
我已经尝试用不同的用户和密码创建另一个数据库(bob 是用户),但仍然没有任何区别(仍然以 root 身份登录):
arangosh --server.database test2
_
__ _ _ __ __ _ _ __ __ _ ___ ___| |__
/ _` | '__/ _` | '_ \ / _` |/ _ \/ __| '_ \
| (_| | | | (_| | | | | (_| | (_) \__ \ | | |
\__,_|_| \__,_|_| |_|\__, |\___/|___/_| |_|
|___/
arangosh (ArangoDB 2.7.1 [darwin] 64bit, using ICU 54.1, V8 4.3.61, OpenSSL 1.0.2d 9 Jul 2015)
Copyright (c) ArangoDB GmbH
Pretty printing values.
Connected to ArangoDB 'tcp://127.0.0.1:8529' version: 2.7.1 [standalone], database: 'test2', username: 'root'
在这两种情况下,我都可以做任何我想做的事情,创建 collections、添加文档等
为什么凭证系统似乎没有做它应该做的事? (保护系统)。
我在 OS X 上使用默认 homebrew
安装版本。
我不是 root(在系统 root 中),但我是从终端手动启动数据库实例的用户——所以在这方面我可能是内部数据库 root(启动系统的用户),但那是只是一个疯狂的猜测。
我错过了什么吗?
默认情况下,服务器将在禁用身份验证的情况下启动。这是为了让尝试 ArangoDB 尽可能简单,但从安全的角度来看,它(至少)值得商榷。
要使服务器对所有传入请求使用身份验证,您可以编辑服务器的配置文件arangod.conf。使用自制软件时,配置文件应位于 /usr/local/etc/arangodb/arangod.conf
。
配置文件中的以下指令可用于在服务器上切换身份验证:
# disable authentication for the admin frontend
disable-authentication = yes
注意修改配置文件后需要重启arangod进程,否则修改无效
请注意,即使默认情况下禁用身份验证,服务器也会默认绑定到 127.0.0.1。因此,来自其他主机的传入请求将不会被接受。为了使您的 ArangoDB 实例可用于来自其他 IP 地址的请求,您可能还想将服务器的 endpoint
配置更改为 tcp://127.0.0.1:8529
以外的配置。
此选项位于同一配置文件中。
我正在为一个项目测试 ArangoDB。
我已经通过自制软件安装了 ArangoDB,我可以 运行 它没有任何问题,实际上非常好。
我有一个关于安全的小问题,我正在努力解决。
当我创建一个新数据库(我使用的是 Web 界面)时,系统要求我提供数据库名称以及用户名和密码。
我输入的用户名和密码似乎并不重要,我总是能够登录它而无需任何提示输入密码。
例如,我使用默认用户 root 和一些随机密码创建了一个数据库,我可以使用 arangosh 正常登录,没有问题。
arangosh --server.database test1
_
__ _ _ __ __ _ _ __ __ _ ___ ___| |__
/ _` | '__/ _` | '_ \ / _` |/ _ \/ __| '_ \
| (_| | | | (_| | | | | (_| | (_) \__ \ | | |
\__,_|_| \__,_|_| |_|\__, |\___/|___/_| |_|
|___/
arangosh (ArangoDB 2.7.1 [darwin] 64bit, using ICU 54.1, V8 4.3.61, OpenSSL 1.0.2d 9 Jul 2015)
Copyright (c) ArangoDB GmbH
Pretty printing values.
Connected to ArangoDB 'tcp://127.0.0.1:8529' version: 2.7.1 [standalone], database: 'test1', username: 'root'
我已经尝试用不同的用户和密码创建另一个数据库(bob 是用户),但仍然没有任何区别(仍然以 root 身份登录):
arangosh --server.database test2
_
__ _ _ __ __ _ _ __ __ _ ___ ___| |__
/ _` | '__/ _` | '_ \ / _` |/ _ \/ __| '_ \
| (_| | | | (_| | | | | (_| | (_) \__ \ | | |
\__,_|_| \__,_|_| |_|\__, |\___/|___/_| |_|
|___/
arangosh (ArangoDB 2.7.1 [darwin] 64bit, using ICU 54.1, V8 4.3.61, OpenSSL 1.0.2d 9 Jul 2015)
Copyright (c) ArangoDB GmbH
Pretty printing values.
Connected to ArangoDB 'tcp://127.0.0.1:8529' version: 2.7.1 [standalone], database: 'test2', username: 'root'
在这两种情况下,我都可以做任何我想做的事情,创建 collections、添加文档等
为什么凭证系统似乎没有做它应该做的事? (保护系统)。
我在 OS X 上使用默认 homebrew
安装版本。
我不是 root(在系统 root 中),但我是从终端手动启动数据库实例的用户——所以在这方面我可能是内部数据库 root(启动系统的用户),但那是只是一个疯狂的猜测。
我错过了什么吗?
默认情况下,服务器将在禁用身份验证的情况下启动。这是为了让尝试 ArangoDB 尽可能简单,但从安全的角度来看,它(至少)值得商榷。
要使服务器对所有传入请求使用身份验证,您可以编辑服务器的配置文件arangod.conf。使用自制软件时,配置文件应位于 /usr/local/etc/arangodb/arangod.conf
。
配置文件中的以下指令可用于在服务器上切换身份验证:
# disable authentication for the admin frontend
disable-authentication = yes
注意修改配置文件后需要重启arangod进程,否则修改无效
请注意,即使默认情况下禁用身份验证,服务器也会默认绑定到 127.0.0.1。因此,来自其他主机的传入请求将不会被接受。为了使您的 ArangoDB 实例可用于来自其他 IP 地址的请求,您可能还想将服务器的 endpoint
配置更改为 tcp://127.0.0.1:8529
以外的配置。
此选项位于同一配置文件中。