在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
MongoDB 简介 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 1、修改启动MongoDB时要求用户验证 加参数 --auth 即可。 现在我们把MongoDB服务删除,再重新添加服务 复制代码 代码如下: mongod --dbpath "D:\work\MongoDB\data" --logpath "D:\work\MongoDB\log\mongodb.log" --install --serviceName "MongoDB" --auth 2、创建用户,并使用创建的用户登录 打开shell操作界面,默认test数据,再查看所有数据库,发现报错,因为没有用户验证。 使用db.auth("user","pwd")进行用户验证。 user:用户名 pwd:密码 因为数据库中没有用户,所以需要先使用无用户验证的方式启动数据,在admin数据库下新建用户。 复制代码 代码如下: db.createUser({user:"", pwd:"", roles:[{role:"", db:""}]}) 在当前数据库下创建一个用户 user:用户名 pwd:密码 roles:角色信息 [role:角色名, db:对指定数据库的操作] > db.createUser({user:"admin", pwd:"admin", roles:[{role:"userAdminAnyDatabase", db:"admin"}]}) Successfully added user: { "user" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } 在使用用户验证的方式启动数据库,在数据库admin中,使用admin登录 > db.auth("admin","admin") 1 状态1表示验证成功,0表示验证失败 创建用户默认给当前使用的数据下创建用户, 例如:当前使用的数据是admin,在admin数据下新建用户 复制代码 代码如下: db.createUser({user:"zyh", pwd:"zyh", roles:[{role:"readWrite", db:"zyhdb"}]}) 在admin数据库下使用zyh登录,可读写zyhdb的collection。 当在zyhdb下,无法使用zyh登录,因为用户zyh是在admin数据库下。 3、查看当前数据下的用户 show users 显示当前数据库下所有的用户 使用有用户管理权限的用户登录才能看见,例如使用zyh登录后,执行会报错;使用admin登录后,显示用户 复制代码 代码如下: > db.auth("zyh","zyh") 1 > show users 2016-06-01T20:32:30.639+0800 E QUERY [thread1] Error: not authorized on admin to execute command { usersInfo: 1.0 } : _getErrorWithCode@src/mongo/shell/utils.js:25:13 DB.prototype.getUsers@src/mongo/shell/db.js:1523:1 shellHelper.show@src/mongo/shell/utils.js:743:9 shellHelper@src/mongo/shell/utils.js:650:15 @(shellhelp2):1:1 > db.auth("admin","admin") 1 > show users { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] } { "_id" : "admin.zyh", "user" : "zyh", "db" : "admin", "roles" : [ { "role" : "readWrite", "db" : "zyhdb" } ] } 还可以使用db.getUsers()查看所有的用户 使用db.getUser("user")查询指定用户的具体信息 4、修改用户信息 复制代码 代码如下: db.changeUserPassword("user", "newpwd"),修改密码 user:用户名 newpwd:新的密码 db.updateUser("user", {roles:[{role:"", db:""}]}) 修改用户信息 复制代码 代码如下: db.grantRolesToUser("user", [{role:"", db:""}]) 追加角色 复制代码 代码如下: db.revokeRolesFromUser("user", [{role:"", db:""}]) 取消角色 5、删除用户 db.dropUser("user") 删除指定用户 附:常用内置角色说明 数据库用户角色(每个数据库都有的角色) read 对non-system集合的读取权限,以及以下system集合的读取权限:system.indexes,system.js,system.namespaces 数据库管理角色(每个数据库都包含的数据管理角色) 集群管理角色 admin数据库包含以下角色用于管理整个系统,而不是只针对单个数据库 备份和还原角色 admin数据库包含以下角色用于备份和还原数据 all-database roles 超级角色 角色 说明 以上内容是小编给大家介绍的MongoDB快速入门笔记(七)MongoDB的用户管理操作的相关知识,希望对大家有所帮助! |
请发表评论