频道栏目
首页 > 资讯 > DB2 > 正文

通过shell为MongoDB添加用户

17-06-17        来源:[db:作者]  
收藏   我要投稿

通过shell为MongoDB添加用户

环境为: Ubuntu 16.04 LTS 64位 MongoDB server 3.4.5 MongoDB shell 3.4.5

一、启动数据库服务

打开控制台,输入

mongod

即可启动数据库服务,此时如果退出控制台,数据库服务也会关闭。

二、通过shell连接数据库

再打开一个控制台,输入

mongo

即可连接数据库。
如果连接失败,可以使用 netstat -apn|grep mongod 来查询 mongod 监听的端口。
然后再控制台输入

mongo –port xxx

来连接数据库

三、创建用户

在连接数据库时没有指定使用的 database, 则会默认到名为 ‘test’ 的数据库。
通过

use admin

来切换到名为 ‘admin’ 的数据库,之后输入

db.createUser({
        user:"test_root",
        pwd:"123456",
        roles:[{
            role:"root",
            db:"admin"  
        }]
    }
)

来创建一个用户名为 test_root, 密码为 123456 的超级用户。
其中 role 表示用户的角色,这里采用了内置的 root 角色。db 表示用户的 authentication database。这里的 authentication database 并不表示用户可以对这个数据库为所欲为。其实 authentication database 和 用户名共同构成了 用户的唯一标识(多个同名用户是允许的,只要他们的authentication database是不同)。
mongodb中的内置角色
authentication database

四、数据库开启身份认证

打开之前运行 mongod 的控制台,输入 ctrl + c 结束 mongod。
修改 /etc/mongodb.conf
将其中

# auth = true

的注释去掉,同时保证

# noauth=true

被注释掉,或者为 false。
通过

mongod –config /etc/mongodb.conf –fork

来启动数据库,此时,退出控制台,数据库服务仍会保持运行。

五、通过用户名和密码来连接数据库

此时,我们有两种方式来连接数据库
1. 先连接数据库之后再登录
连接数据库和第二步完全一样
不过登录之后,没有任何的读写权限(show dbs 等操作均不可以)
能做的两件事是 use <数据库名>,和 db.auth()。
因此,我们可以使用如下方法登录

use admin
db.auth('test_root','123456')

2.在连接数据库时登录
在控制台中输入

mongo -u 'test_root' -p '123456' --authenticationDatabase 'admin'

[1] https://docs.mongodb.com/manual/tutorial/enable-authentication/
[2] https://docs.mongodb.com/manual/core/security-users/
[3] https://docs.mongodb.com/manual/core/security-built-in-roles/

相关TAG标签
上一篇:Linux入门(一)
下一篇:nmon监控工具的使用
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站