当前位置: 首页 > news >正文

开源手机网站济南建设网中标公告

开源手机网站,济南建设网中标公告,百度58网络推广怎么做,wordpress關閉摘要#xff1a; MongoDB 3.0 安全权限访问控制#xff0c;在添加用户上面3.0版本和之前的版本有很大的区别#xff0c;这里就说明下3.0的添加用户的方法。 环境、测试#xff1a; 在安装MongoDB之后#xff0c;先关闭auth认证#xff0c;进入查看数据库#xff0c;只有…摘要       MongoDB 3.0 安全权限访问控制在添加用户上面3.0版本和之前的版本有很大的区别这里就说明下3.0的添加用户的方法。 环境、测试       在安装MongoDB之后先关闭auth认证进入查看数据库只有一个local库admin库是不存在的 rootzhoujinyi:/usr/local/mongo4# mongo --port27020 MongoDB shell version: 3.0.4 connecting to: 127.0.0.1:27020/test 2015-06-29T09:31:08.673-0400 I CONTROL [initandlisten] show dbs; local 0.078GB 现在需要创建一个帐号该账号需要有grant权限即账号管理的授权权限。注意一点帐号是跟着库走的所以在指定库里授权必须也在指定库里验证(auth)。 use admin switched to db admindb.createUser( ... { ... user: dba, ... pwd: dba, ... roles: [ { role: userAdminAnyDatabase, db: admin } ] ... } ... ) Successfully added user: { user : dba, roles : [ { role : userAdminAnyDatabase, db : admin } ] } 上面加粗的就是执行的命令 user用户名 pwd密码 roles指定用户的角色可以用一个空数组给新用户设定空角色在roles字段,可以指定内置角色和用户定义的角色。role里的角色可以选 Built-In Roles内置角色1. 数据库用户角色read、readWrite;2. 数据库管理角色dbAdmin、dbOwner、userAdmin 3. 集群管理角色clusterAdmin、clusterManager、clusterMonitor、hostManager 4. 备份恢复角色backup、restore 5. 所有数据库角色readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6. 超级用户角色root // 这里还有几个角色间接或直接提供了系统超级用户的访问dbOwner 、userAdmin、userAdminAnyDatabase 7. 内部角色__system 具体角色  Read允许用户读取指定数据库 readWrite允许用户读写指定数据库 dbAdmin允许用户在指定数据库中执行管理函数如索引创建、删除查看统计或访问system.profile userAdmin允许用户向system.users集合写入可以找指定数据库里创建、删除和管理用户 clusterAdmin只在admin数据库中可用赋予用户所有分片和复制集相关函数的管理权限。 readAnyDatabase只在admin数据库中可用赋予用户所有数据库的读权限 readWriteAnyDatabase只在admin数据库中可用赋予用户所有数据库的读写权限 userAdminAnyDatabase只在admin数据库中可用赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase只在admin数据库中可用赋予用户所有数据库的dbAdmin权限。 root只在admin数据库中可用。超级账号超级权限 刚建立了 userAdminAnyDatabase 角色用来管理用户可以通过这个角色来创建、删除用户。验证需要开启auth参数。 rootzhoujinyi:/usr/local/mongo4# mongo --port27020 MongoDB shell version: 3.0.4 connecting to: 127.0.0.1:27020/test show dbs; ####没有验证导致没权限。 2015-06-29T10:02:16.634-0400 E QUERY Error: listDatabases failed:{ ok : 0, errmsg : not authorized on admin to execute command { listDatabases: 1.0 }, code : 13 } at Error (anonymous) at Mongo.getDBs (src/mongo/shell/mongo.js:47:15) at shellHelper.show (src/mongo/shell/utils.js:630:33) at shellHelper (src/mongo/shell/utils.js:524:36) at (shellhelp2):1:1 at src/mongo/shell/mongo.js:47 use admin #验证因为在admin下面添加的帐号所以要到admin下面验证。 switched to db admin db.auth(dba,dba) 1 show dbs; admin 0.078GB local 0.078GB use test #在test库里创建帐号 switched to db test db.createUser( ... { ... user: zjyr, ... pwd: zjyr, ... roles: [ ... { role: read, db: test } #只读帐号 ... ] ... } ... ) Successfully added user: { user : zjyr, roles : [ { role : read, db : test } ] } db.createUser( ... { ... user: zjy, ... pwd: zjy, ... roles: [ ... { role: readWrite, db: test } #读写帐号 ... ] ... } ... ) Successfully added user: { user : zjy, roles : [ { role : readWrite, #读写账号 db : test } ] } show users; #查看当前库下的用户 { _id : test.zjyr, user : zjyr, db : test, roles : [ { role : read, db : test } ] } { _id : test.zjy, user : zjy, db : test, roles : [ { role : readWrite, db : test } ] } 上面创建了2个帐号现在验证下验证前提需要一个集合 db.abc.insert({a:1,b:2}) #插入失败没有权限userAdminAnyDatabase 权限只是针对用户管理的对其他是没有权限的。 WriteResult({writeError : {code : 13, errmsg : not authorized on test to execute command { insert: \abc\, documents: [ { _id: ObjectId(55915185d629831d887ce2cb), a: 1.0, b: 2.0 } ], ordered: true } } }) bye rootzhoujinyi:/usr/local/mongo4# mongo --port27020 MongoDB shell version: 3.0.4 connecting to: 127.0.0.1:27020/test use test switched to db test db.auth(zjy,zjy) #用创建的readWrite帐号进行写入 1 db.abc.insert({a:1,b:2}) WriteResult({ nInserted : 1 }) db.abc.insert({a:11,b:22}) WriteResult({ nInserted : 1 }) db.abc.insert({a:111,b:222}) WriteResult({ nInserted : 1 }) db.abc.find() { _id : ObjectId(559151a1b78649ebd8316853), a : 1, b : 2 } { _id : ObjectId(559151cab78649ebd8316854), a : 11, b : 22 } { _id : ObjectId(559151ceb78649ebd8316855), a : 111, b : 222 } db.auth(zjyr,zjyr) #切换到只有read权限的帐号 1 db.abc.insert({a:1111,b:2222}) #不能写入 WriteResult({ writeError : { code : 13, errmsg : not authorized on test to execute command { insert: \abc\, documents: [ { _id: ObjectId(559151ebb78649ebd8316856), a: 1111.0, b: 2222.0 } ], ordered: true } } }) db.abc.find() #可以查看 { _id : ObjectId(559151a1b78649ebd8316853), a : 1, b : 2 } { _id : ObjectId(559151cab78649ebd8316854), a : 11, b : 22 } { _id : ObjectId(559151ceb78649ebd8316855), a : 111, b : 222 } 有没有一个超级权限不仅可以授权而且也可以对集合进行任意操作答案是肯定的只是不建议使用。那就是role角色设置成root。 db.auth(dba,dba) 1 db.createUser( ... { ... user: zhoujinyi, ... pwd: zhoujinyi, ... roles: [ ... { role: root, db: admin } #超级root帐号 ... ] ... } ... ) Successfully added user: { user : zhoujinyi, roles : [ { role : root, db : admin } ] } show users; #查看当前库下的用户 { _id : admin.dba, user : dba, db : admin, roles : [ { role : userAdminAnyDatabase, db : admin } ] } { _id : admin.zhoujinyi, user : zhoujinyi, db : admin, roles : [ { role : root, db : admin } ] } use admin switched to db admin db.auth(zhoujinyi,zhoujinyi) 1 use test switched to db test db.abc.insert({a:1,b:2}) WriteResult({ nInserted : 1 }) db.abc.insert({a:1111,b:2222}) #权限都有 WriteResult({ nInserted : 1 }) db.abc.find() { _id : ObjectId(5591539bb78649ebd8316857), a : 1, b : 2 } { _id : ObjectId(559153a0b78649ebd8316858), a : 1111, b : 2222 } db.abc.remove({}) WriteResult({ nRemoved : 2 }) 因为帐号都是在当前需要授权的数据库下授权的那要是不在当前数据库下会怎么样 db admindb.createUser( ... { ... user: dxy, ... pwd: dxy, ... roles: [ ... { role: readWrite, db: test }, #在当前库下创建其他库的帐号在admin库下创建test、abc库的帐号 ... { role: readWrite, db: abc } ... ] ... } ... ) Successfully added user: { user : dxy, roles : [ { role : readWrite, db : test }, { role : readWrite, db : abc } ] } show users; { _id : admin.dba, user : dba, db : admin, roles : [ { role : userAdminAnyDatabase, db : admin } ] } { _id : admin.zhoujinyi, user : zhoujinyi, db : admin, roles : [ { role : root, db : admin } ] } { _id : admin.dxy, user : dxy, db : admin, roles : [ { role : readWrite, db : test }, { role : readWrite, db : abc } ] } use test switched to db test db.auth(dxy,dxy) #在admin下创建的帐号不能直接在其他库验证 Error: 18 Authentication failed. 0 use admin switched to db admin #只能在帐号创建库下认证再去其他库进行操作。 db.auth(dxy,dxy) 1 use test switched to db test db.abc.insert({a:1111,b:2222}) WriteResult({ nInserted : 1 }) use abc switched to db abc db.abc.insert({a:1111,b:2222}) WriteResult({ nInserted : 1 }) 上面更加进一步说明数据库帐号是跟着数据库来走的哪里创建哪里认证。 创建了这么多帐号怎么查看所有帐号 use admin switched to db admindb.auth(dba,dba) 1 db.system.users.find().pretty() { _id : admin.dba, user : dba, db : admin, credentials : { SCRAM-SHA-1 : { iterationCount : 10000, salt : KfDUzCOIUo7WVjFr64ZOcQ, storedKey : t4sPsKG2dXnZztVYj5EgdUzT9sc, serverKey : 2vCGiq9NIc1zKqeEL6VvO4rP26A } }, roles : [ { role : userAdminAnyDatabase, db : admin } ] } { _id : test.zjyr, user : zjyr, db : test, credentials : { SCRAM-SHA-1 : { iterationCount : 10000, salt : h1gOW3J7wzJuTqgmmQgJKQ, storedKey : 7lkoANdxM2py0qiDBzFaZYPp1cM, serverKey : Qyu6IRNyaKLUvqJ2CAa/tQYY36c } }, roles : [ { role : read, db : test } ] } { _id : test.zjy, user : zjy, db : test, credentials : { SCRAM-SHA-1 : { iterationCount : 10000, salt : afwaKuTYPWwbDBduQ4Hm7g, storedKey : ebb2LYLn4hiOVlZqgrAKBdStfn8, serverKey : LG2qWwuuVFNMmr9lWsRb3DIhQ } }, roles : [ { role : readWrite, db : test } ] } { _id : admin.zhoujinyi, user : zhoujinyi, db : admin, credentials : { SCRAM-SHA-1 : { iterationCount : 10000, salt : pE2cSOYtBOYevk8tqrwbSQ, storedKey : TwMxdnlB5Eiaqg4tNh9ByNuUp9A, serverKey : Mofr9ohVlFfR6/md4LMRkOhXouc } }, roles : [ { role : root, db : admin } ] } { _id : admin.dxy, user : dxy, db : admin, credentials : { SCRAM-SHA-1 : { iterationCount : 10000, salt : XD6smcWX4tdg/ZJPoLxxRg, storedKey : F4uiayykHDp/r9krAKZjdrgqjM, serverKey : Kf51IU9J3RIrB8CFn5Z5hEKMSkw } }, roles : [ { role : readWrite, db : test }, { role : readWrite, db : abc } ] } db.system.users.find().count() 5 备份还原使用那个角色的帐号之前创建的帐号zjy:test库读写权限zjyr:test库读权限 rootzhoujinyi:~# mongodump --port27020 -uzjyr -pzjyr --dbtest -o backup #只要读权限就可以备份 2015-06-29T11:20:04.864-0400 writing test.abc to backup/test/abc.bson 2015-06-29T11:20:04.865-0400 writing test.abc metadata to backup/test/abc.metadata.json 2015-06-29T11:20:04.866-0400 done dumping test.abc 2015-06-29T11:20:04.867-0400 writing test.system.indexes to backup/test/system.indexes.bson rootzhoujinyi:~# mongorestore --port27020 -uzjy -pzjy --dbtest backup/test/ #读写权限可以进行还原 2015-06-29T11:20:26.607-0400 building a list of collections to restore from backup/test/ dir 2015-06-29T11:20:26.609-0400 reading metadata file from backup/test/abc.metadata.json 2015-06-29T11:20:26.609-0400 restoring test.abc from file backup/test/abc.bson 2015-06-29T11:20:26.611-0400 error: E11000 duplicate key error index: test.abc.$_id_ dup key: { : ObjectId(559154efb78649ebd831685a) } 2015-06-29T11:20:26.611-0400 restoring indexes for collection test.abc from metadata 2015-06-29T11:20:26.612-0400 finished restoring test.abc 2015-06-29T11:20:26.612-0400 donehttps://www.cnblogs.com/shiyiwen/p/5552750.html转载于:https://www.cnblogs.com/seasonzone/p/9359501.html
http://wiki.neutronadmin.com/news/81009/

相关文章:

  • 连网站建设百度服务中心投诉
  • 网站建设与优化推广方案内容学生创业做网站制作设计
  • 腾讯云建设网站怎么seo关键词优化排名
  • 佛山建设网站推广资源整合平台
  • 高端网站建设价钱部队网站建设报告
  • 网站设计与开发专家设计海报的软件
  • 网站开发实用技术pdfwordpress绑定熊掌号
  • 做网站如何添加表单wordpress 全部页面500
  • 制作网站的步骤有哪些青岛活动策划公司
  • 公司网站怎么创一个网站
  • 自己做网站打开是乱码华阳路街道网站建设
  • 东莞网站推广公司门户网站制作流程博客
  • 开发区网站建设在哪衡水做wap网站的地方
  • 东莞网站建设周期三门县住房和城乡建设规划局网站
  • 网站建设设计原则建设网站的网络公司
  • 公司自己做网站多少费用注册营业执照网上申请入口
  • 做p2p投资理财的网站wxparse wordpress
  • 番禺附近网站建设推广wordpress自动播放音乐插件
  • 视频网站如何做中国空间站科幻作文1000字
  • 以网络营销为导向的网站建设应注意什么问题电商网站定制开发
  • dede网站seo网站制作需要多长时间
  • 网站开发移动app网络与新媒体就业方向及前景
  • 最新新闻事件50字seo搜索优化技术
  • 山东网站建设公司哪家专业南宁网站搜索引擎优
  • 添加网站关键词wordpress html 代码编辑器插件下载
  • 网站建设自助建站企业网站策划任职要求
  • wordpress网站布局做女朋友网站
  • 网络服务提供者发现用户利用其网络服务对未成年网站关键词在线优化
  • 免费带后台的网站模板网站做子页面怎么做
  • 网站建设开发平台商机创业网2021创业