1. 不需要登录的方式启动mongodb

mongod --dbpath=/data/mongod/data -logpath=/data/mongod/log//mongodb.log -logappend -port=27017 -fork 

2. 查看当前的库

linux>mongo

       >show dbs

显示admin 和 local两个库

3>建一个新的库 : zcydb

linux>mongo

      >use zcydb(创建了新的库)

     >db (显示当前所在的库)

     >show dbs (显示所有的库,但是新建的没有列出了,需要插入一个数据后,才可以看到)

     >db.zcycollect.insert({"name":"菜鸟教程"}) 插入一条数据,zcycollect 是表的概念,集合

4> 对库 zcydb 创建用户名

linux>mongo

       >use zcydb (先选择进入库)

       >db.createUser( 
  { 
    user: "root", 
    pwd: "1234567", 
    roles: [ { role: "readWrite", db: "zcydb" } ,{ role: "userAdmin", db: "zcydb" } ] 

  } )

或者:

db.createUser( 
  { 
    user: "root", 
    pwd: "1234567", 
    roles: [ "readWrite","userAdmin" ] 

  } )


命令还可以:

db.createUser( 
  { 
    user: "root", 
    pwd: "1234567", 
    roles: [ { role: "readWrite", db: "zcydb" } ] 

  } )


创建完成后查询人员

>help  可以查看帮助

>show users 列出用户

5. 重启mongo。注意红色部分,表示需要登录验证

mongod -shutdown -dbpath=/data/mongod/data

mongod --dbpath=/data/mongod/data --logpath=/data/mongod/log//mongodb.log --logappend --port=27017 -- -fork --auth

6. 重新进入mongo

linux>mongo

     >use daas 进入daas数据库

     >show dbs 此时提示要验证登录

    >db.auth('root', '1234567')  返回1表示成功

   >show users 列出用户(会报错,因为root用户只有读写权限)

  >show collections 查询表

  >show zcycollect.find() 查询数据

7. 注意: use admin 换个库,使用root 是登录不进去的 具体的数据库,还是需要有对应的用户,用户是和数据库走的

8. 对admin 库 创建用户

   1> 停止mongdb

   2>启动不带鉴权的mongo

   3> momgo 进入 

     > use admin

    >show roles 暂时所有的角色。 admin 和 自己建的库,显示不一样

   >db.createUser( 
  { 
    user: "admin", 
    pwd: "1234567", 
    roles: [ { role: "readWrite","userAdminAnyDatabase" } ] 

  } )

4> 重启mongo,带上--auth 

5. use admin 后,db.auth 后,就可以show dbs(userAdmin权限),show collections (readWrite权限).

但是切换use zcydb,show dbs 也可以(userAdminAnyDatabase权限),但是show collections不可以(admin用户只有对admin库有readWrite权限,如果想要对所有库,可以readWriteAnyDatabase.这些角色列表可以再admin库里面 show roles 查看)。所以还是需要登录zcydb的账号才可以

Logo

更多推荐