ArangoDB密码似乎没有做任何事

时间:2015-12-10 09:09:49

标签: arangodb

我正在为一个项目测试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'

在这两种情况下,我都可以做任何我想做的事,创建集合,添加文档等等。

为什么凭据系统似乎没有做它应该做的事情? (保护系统)。

我在OS X上使用默认的homebrew安装版本。

我不是root(在系统根目录中),但我是用户从终端手动启动数据库实例 - 所以也许在这方面我是内部数据库根(启动系统的用户)但是#39 ;只是一个疯狂的猜测。

我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

默认情况下,服务器将在禁用身份验证时启动。这是为了尽可能简单地尝试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之外的其他配置。 该选项位于相同的配置文件中。