MongoDB安全、其余命令

Role-Based Access Control  基于角色的控制linux

 

客户端受权spring

shell脚本建立用户mongodb

db.createUser({'user':'boss', 'pwd':'boss', 'roles':[{'role':'userAdminAnyDatabase', 'db':'admin'}]}) db.createUser({'user':'lison','pwd':'lison','roles':[{'role':'readWrite','db':lison'}]})shell

Tips: 数据库

1.服务器启动须要加上auth参数链接服务器才须要验证    apache

  如:./mongod -f mongodb.conf --authjson

2.切换到数据库上,才能给当前数据库建立用户;安全

 

Java客户端安全认证服务器

MongoCredential类包括每一个受支持的身份验证机制的静态工厂方法。测试

public static MongoCredential createCredential(final String userName, final String database,  final char[] password) 

spring客户端安全认证

 MongoCredential类包括每一个受支持的身份验证机制的静态工厂方法。

<mongo:mongo-client host="192.168.1.142" port="27022" credentials="lison:lison@lison"> </mongo:mongo-client>

 

其余经常使用命令

show dbs :显示数据库列表

show collections :显示集合列表

db : 显示当前数据库

db.stats() :显示数据库信息

db.serverStatus() : 查看服务器状态

db.dropDatabase():删除数据库

db.help(),db.collection.help():内置帮助,显示各类方法的说明;

db.users.find().size():获取查询集合的数量;

db.users.drop():删除集合;

 

数据管理命令

数据备份  mongodump

./mongodump -h localhost:27022 -d lison -o /usr/local/apache/mongoDB/

-h :指定ip和端口; -d :备份的数据库名称 ; -o:指定备份的路径        其本质为:执行查询,而后写入文件;

数据恢复  mongorestore

./mongorestore -h localhost:27022  -d lison /usr/local/apache/mongoDB/lison/ --drop

--drop 已存在lison库则删除原数据库,去掉--drop则是合并

数据导出  mongoexport(针对集合)

./mongoexport -h localhost:27022 -d lison -c users -f id,username,age,salary --type=csv -o /usr/local/apache/mongoDB/mongodb-linux-x86_64-rhel70-3.4.10/users.csv

-c :指定导出的集合; -f :要导出的字段; --type:导出的文件格式类型[csv,json]

数据导入  mongoimport(针对集合)

./mongoexport -h localhost:27022 -d lison -c users  /usr/local/apache/mongoDB/mongodb-linux-x86_64-rhel70-3.4.10/users.csv ---upsert    

--upsert  表示更新现有数据,若是不适用—upsert,则导入时已经存在的文档会报id重复,数据再也不插入,也可使用—drop删除原有数据

 

关闭mongodb步骤

1.特别在生产环境,不要用kill -9关掉mongodb的进程,极可能形成mongodb的数据丢失;
优雅的关机:

(1)第一种方式

use admin

db.shutdownServer()
(2)第二种方式
mongod --shutdown -f mongodb.conf

 

安全权限设置步骤

1.经过start-mongodb-auth.sh启动mongodb
2.数据库增长安全模式后,初始化一个“userAdminAnyDatabase”很是重要
  经过客户端链接,使用admin数据库, 执行以下脚本:
  db.createUser({'user':'boss22', 'pwd':'boss', 'roles':[{'role':'userAdminAnyDatabase', 'db':'admin'}]})
3.使用刚建立成功的用户登陆:db.auth("boss","boss");
4.切换到lison数据库(use lison),建立读写权限用户:db.createUser({'user':'lison','pwd':'lison','roles':[{'role':'readWrite','db':'lison'}]})
5.使用读写权限用户lison登陆,db.auth("lison","lison"),登陆后测试;
ps:也能够以非auth模式启动,而后建立用户后,用auth模式启动

相关文章
相关标签/搜索