MongoDB用户管理

 开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以对数据库任意操作而且可以远程访问数据库!
   在刚安装完毕的时候MongoDB都默认有一个admin数据库,此时admin数据库是空的,没有记录权限相关的信息!当admin.system.users一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作(不管是否是以--auth 参数启动),直到在admin.system.users中添加了一个用户。
需要注意的是:admin.system.users中将会保存比在其它数据库中设置的用户权限更大的用户信息,拥有超级权限,也就是说在admin中创建的用户可以对mongodb中的其他数据库数据进行操作。
1 mongodb系统中,数据库是由超级用户来创建的,一个数据库可以包含多个用户,一个用户只能在一个数据库下,不同数据库中的用户可以同名!
2 当admin.system.users一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作(不管是否是以--auth 参数启动),直到在admin.system.users中添加了一个用户。
3 特定数据库比如DB1下的用户User1,不能够访问其他数据库DB2,但是可以访问本数据库下其他用户创建的数据!
4 不同数据库中同名的用户不能够登录其他数据库!比如DB1,DB2都有user1,以user1登录DB1后,不能够登录到DB2进行数据库操作!
5 在admin数据库创建的用户具有超级权限,可以对mongodb系统内的任何数据库的数据对象进行操作!


【】用户管理
1 添加只读用户
db.addUser("skyman.man","manchungood",true)

 

2 修改只读用户为普通用户
 db.addUser("skyman.man","manchungood",false);
 db.addUser("admin","manchungood",false);


3 删除用户
db.removeUser("admin");

4 切换数据库
打开数据库,没有的话立即建一个
> use admin 

5 增加或修改用户密码 ,必须在非--auth方式下启动mongodb,建立用户,建立完毕,关闭mongodb,以--auth方式启动mongodb,再以admin用户登录自己专属的db
> db.addUser('admin','admin')

6 查看用户列表
> db.system.users.find()

7 #用户认证,要让登陆的用户能具有某个db的权限,必须进入该db,执行auth命令才能生效。
> db.auth('admin','pwd')

8 删除用户对该db的访问权限
> db.removeUser('mongodb');
--查看当前db的所有用户
> show users

9 使用用户登录mongodb
[root@mongo ~]# /usr/local/mongodb37018/bin/mongo 127.0.0.1:37017/test -uadmin -padmin
MongoDB shell version: 2.0.2
connecting to: 127.0.0.1:37017/test

其中test是库名 

 

10.#查看所有数据库
--查看所有数据库
> show dbs;
--切换数据库
> use admin;
--查看正在使用的数据库
> db
--查看当前数据库里有多少个collections 
show collections 
> show dbs
--查看所有的collection
> show collections 
--查看各collection的状态
> db.printCollectionStats()
--查看主从复制状态
> db.printReplicationInfo()
--修复数据库
> db.repairDatabase()
--设置记录profiling,0=off 1=slow 2=all 
> db.setProfilingLevel(1)
--查看profiling
> show profile
--拷贝数据库
> db.copyDatabase('mail_addr','mail_addr_tmp')
--删除collection
> db.mail_addr.drop()
--删除当前的数据库
> db.dropDatabase()

PRIMARY> use identify;
switched to db identify
PRIMARY> db.dropDatabase();
{
        "assertion" : "Can't take a write lock while out of disk space",
        "assertionCode" : 14031,
        "errmsg" : "db assertion failure",
        "ok" : 0
}
PRIMARY>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB 中,可以通过以下方式进行用户管理: 1. 创建用户: 使用 `db.createUser()` 方法创建新用户。例如,创建一个用户名为 "admin",密码为 "password",角色为 "userAdminAnyDatabase" 的用户可以执行以下命令: ``` db.createUser( { user: "admin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) ``` 2. 删除用户: 使用 `db.dropUser()` 方法删除现有用户。例如,删除名为 "admin" 的用户可以执行以下命令: ``` db.dropUser("admin") ``` 3. 修改用户密码: 使用 `db.changeUserPassword()` 方法修改现有用户的密码。例如,将名为 "admin" 的用户的密码修改为 "newpassword" 可以执行以下命令: ``` db.changeUserPassword("admin", "newpassword") ``` 4. 切换到其他数据库并管理用户: 使用 `use <db>` 命令切换到其他数据库,然后使用上述命令进行用户管理。 5. 查看当前数据库的用户: 使用 `db.getUsers()` 方法查看当前数据库的用户列表。例如,查看当前数据库(如 "admin")的用户列表可以执行以下命令: ``` db.getUsers() ``` 6. 查看指定数据库的用户: 使用 `db.getSiblingDB(<db>).getUsers()` 方法查看指定数据库的用户列表。例如,查看数据库 "mydb" 的用户列表可以执行以下命令: ``` db.getSiblingDB("mydb").getUsers() ``` 7. 用户认证: 使用 `db.auth()` 方法对用户进行身份验证。例如,使用名为 "admin" 的用户和密码 "password" 进行身份验证可以执行以下命令: ``` db.auth("admin", "password") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值