用户授权和auth登录
1、进入mongodb
mongodb安装好后第一次进入是不需要密码的,也没有任何用户,通过shell命令可直接进入,cd到mongodb目录下的bin文件夹,执行命令./mongo即可
运行如下:
[root@namenode mongodb]#
./bin/mongo
MongoDB shell version: 1.8.2
connecting to: test
> use local;
switched to db local
2、添加管理用户
mongoDB 没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase
>
use admin
>
db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
注:添加完用户后可以使用show users或db.system.users.find()查看已有用户
3、关闭mongodb
添加完管理用户后,关闭MongoDB,并使用权限方式再次开启MongoDB,这里注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件),可以使用db.shutdownServer()关闭
4、使用权限方式启动MongoDB
./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --fork --auth
或者在配置文件中修改:
auth = true
#noauth = true
5、进入mongo shell
使用admin数据库并进行验证,如果不验证,是做不了任何操作的。
>
use admin
>
db.auth("admin","123456")
#认证,返回1表示成功
6、创建操作用户
验证之后还是做不了操作,因为admin只有用户管理权限,下面创建用户,用户都跟着库走,
>
use mydb
>
db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "mydb" }]})
7、使用创建的用户root登录进行数据库操作:
[root@localhost mongodb]#
mongo 127.0.0.1/mydb -uroot -p
MongoDB shell version: 3.2.9
Enter password:
connecting to: 127.0.0.1/mydb
>
db
mydb
>
use mydb
switched to db mydb
>
show collections
然后就可以进行增删改查各种数据操作...
备注:
1.运行./mongo –port 1000进入刚刚启动的端口号为10000的数据库