您的位置:首页 > 数据库 > Mongodb

mongodb授权和权限

2015-09-26 17:08 405 查看
MongoDB默认是不需要用户密码连接操作,不过为了安全最好添加认证

首先以非认证方式启动mongod

[code]./bin/mongod --dbpath data --logpath log/mongod.conf  --fork


创建数据库角色

[code]use admin
help        #查看帮助
show roles     #查看所有创建的角色
#内建普通角色read,readWrite,dbAdmin,dbOwner,userAdmin,dbAdminAnyDatabase,clusterAdmin等.
#dbOwner有readWrite, dbAdmin and userAdmin权限.
#超级角色root有readWriteAnyDatabase, dbAdminAnyDatabase, userAdminAnyDatabase and clusterAdmin权限
#查看角色权限
db.getRole( "readWrite", { showPrivileges: true } )
#创建角色
db.createRole(
   {
     role: "mongostatRole",
     privileges: [
       { resource: { cluster: true }, actions: [ "serverStatus" ] }
     ],
     roles: []
   }
)


创建数据库管理员用户

[code]use admin
db.createUser(
  {
    user: "root",
    pwd: "password",
    roles: [ { role: "root", db: "admin" } ]
  }
)

use test
db.createUser(
  {
    user: "testOwner",
    pwd: "password",
    roles: [ { role: "dbOwner", db: "test" } ]
  }
)
show users   #查看所有用户
db.getUser("root")
#更改密码
db.updateUser(
   "root",
   {
      pwd: "123456"
   }
)


启动时开启认证–auth

[code]./bin/mongod --dbpath data --shutdown
./bin/mongod --dbpath data --logpath log/mongod.conf  --fork --auth


[code]use admin
db.auth("root","123456")
1
db.auth("root","error")
Error: 18 Authentication failed.
0


command

built-in-roles

Privilege Actions

create-user-defined-role

change-own-password-and-custom-data

add-user-administrator
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: