连接数据库
第一种:/opt/local/mogodb/bin/mongo --host 10.130.161.15:8000
第二种:mongo IP:端口/数据库名 -u 用户名 -p 密码
退出:exit
1.创建用户
db.createUser( { user: "userName",
pwd: "password",
customData: { employeeId: 12345 },
roles: [ { role: "clusterAdmin", db: "dbName" },
{ role: "readAnyDatabase", db: "dbName" },
"readWrite"] },
{ w: "majority" , wtimeout: 5000 } )
注:
(1)customData: 用于描述账户信息
(2)roles:
数据库用户角色
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
备份恢复角色
backup,retore:在进行备份、恢复时可以单独指定的角色,在db.createUser()方法中roles里面的db必须写成是admin库,要不然会 报错
数据库管理角色
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
集群管理角色
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
所有数据库角色
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限,
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
超级用户角色
root:只在admin数据库中可用。超级账号,超级权限
注:在有root账号的前提下,可先在admin下验证权限,然后再到相应数据库去为其它账号添加权限,此时可以不用在对应数据再库执db.auth()
2.删除用户
db.dropUser("userName")
3.修改用户权限
db.grantRolesToUser(
"accountUser01",
[ "readWrite" , { role: "read", db: "stock" } ],
{ w: "majority" , wtimeout: 4000 }
)
4.修改用户密码
db.changeUserPassword("accountUser", "SOh3TbYhx8ypJPxmt1oOfL")
5.随机取N条数据
db.xxx.aggregate([$sample:{size:3}]);
6.数据库相关
show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表)
show users:显示用户
use <db name>:切换当前数据库,这和MS-SQL里面的意思一样
db.help():显示数据库操作命令,里面有很多的命令
db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
7.多个数据库使用同一个用户
原则上mongodb一个数据库只能使用一个用户进行连接,但如果要多个数据库共用用户,则只能在两个数据库分别添加读写权限
db.createUser( { user: "test",
pwd: "test",
roles: [ {
"role" : "readWrite",
"db" : "test"
},
{
"role" : "readWrite",
"db" : "abc"
}] })