<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/post//</link>
<title><![CDATA[mongodb 设置用户密码权限]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[数据库]]></category>
<pubDate>Mon, 25 Jan 2021 01:03:38 +0000</pubDate> 
<guid>https://www.heckjj.com/post//</guid> 
<description>
<![CDATA[ 
	1、设置管理员账户<br/><br/>use admin<br/>db.createUser(&#123; user: "useradmin", pwd: "adminpassword", roles: [&#123; role: "userAdminAnyDatabase", db: "admin" &#125;] &#125;)<br/>mongodb中的用户是基于身份role的，该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份，’AnyDatabase’ 代表可以管理任何数据库。<br/><br/>2、验证<br/><br/>db.auth("useradmin", "adminpassword")<br/>如果返回1，则表示成功。<br/><br/>3、修改配置文件（注意缩进）<br/><br/>sudo vi /etc/mongod.conf<br/>#security:<br/>security:<br/>　　authorization: enabled<br/><br/>4、重启mongodb <br/><br/>sudo service mongod restart<br/>5、创建普通用户<br/><br/>进入mongodb,用第3步的 管理员账户登录，用该账户创建其他数据库管理员账号<br/><br/>　　+先进行管理员认证<br/><br/>use admin<br/>db.auth("useradmin", "adminpassword")<br/>　　+设置其他库的账号密码及权限<br/><br/>use yourdatabase<br/>db.createUser(&#123; user: "youruser", pwd: "yourpassword", roles: [&#123; role: "dbOwner", db: "yourdatabase" &#125;] &#125;)<br/>　　rote:dbOwner 代表数据库所有者角色，拥有最高该数据库最高权限。比如新建索引等<br/><br/>　　<br/><br/>Read：允许用户读取指定数据库<br/>readWrite：允许用户读写指定数据库<br/>dbAdmin：允许用户在指定数据库中执行管理函数，如索引创建、删除，查看统计或访问system.profile<br/>userAdmin：允许用户向system.users集合写入，可以找指定数据库里创建、删除和管理用户<br/>clusterAdmin：只在admin数据库中可用，赋予用户所有分片和复制集相关函数的管理权限。<br/>readAnyDatabase：只在admin数据库中可用，赋予用户所有数据库的读权限<br/>readWriteAnyDatabase：只在admin数据库中可用，赋予用户所有数据库的读写权限<br/>userAdminAnyDatabase：只在admin数据库中可用，赋予用户所有数据库的userAdmin权限<br/>dbAdminAnyDatabase：只在admin数据库中可用，赋予用户所有数据库的dbAdmin权限。<br/>root：只在admin数据库中可用。超级账号，超级权限<br/><br/><br/>6、注意<br/><br/>mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"<br/>use foo<br/>db.createUser(<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;user: "simpleUser",<br/>&nbsp;&nbsp;&nbsp;&nbsp;pwd: "simplePass",<br/>&nbsp;&nbsp;&nbsp;&nbsp;roles: [ &#123; role: "readWrite", db: "foo" &#125;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123; role: "read", db: "bar" &#125; ]<br/>&nbsp;&nbsp;&#125;<br/>)<br/>现在我们有了一个普通用户<br/>用户名：simpleUser<br/>密码：simplePass<br/>权限：读写数据库 foo， 只读数据库 bar。<br/><br/>注意<br/>use foo表示用户在 foo 库中创建，就一定要 foo 库验证身份，即用户的信息跟随随数据库。<br/>比如上述 simpleUser 虽然有 bar 库的读取权限，但是一定要先在 foo 库进行身份验证，直接访问会提示验证失败。<br/><br/>use foo<br/>db.auth("simpleUser", "simplePass")<br/><br/>use bar<br/>show collections<br/>还有一点需要注意，如果 admin 库没有任何用户的话，即使在其他数据库中创建了用户，启用身份验证，默认的连接方式依然会有超级权限<br/>复制代码<br/> <br/><br/>参考：<br/><br/>https://www.2cto.com/database/201802/724340.html<br/><br/>https://www.jianshu.com/p/79caa1cc49a5<br/><br/>https://blog.51cto.com/1767340368/2092960
]]>
</description>
</item><item>
<link>https://www.heckjj.com/post//#blogcomment</link>
<title><![CDATA[[评论] mongodb 设置用户密码权限]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>