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模式启动