秀成 發表於 2019-6-12 16:22:00

MongoDB用户和密码登录

<p><span style="font-size: 16px; color: rgba(255, 0, 0, 1)"><strong>一、MongoDB中内置角色</strong></span></p>
<table style="height: 15px; width: 1135px" border="0">
<tbody>
<tr>
<td><strong><span style="font-size: 15px">角色</span></strong></td>
<td><strong><span style="font-size: 15px">介绍</span></strong></td>
</tr>
<tr>
<td>read</td>
<td>提供读取所有非系统的集合(数据库)</td>
</tr>
<tr>
<td>readWrite</td>
<td>提供读写所有非系统的集合(数据库)和读取所有角色的所有权限</td>
</tr>
<tr>
<td>dbAdmin</td>
<td>提供执行管理任务的功能,例如与架构相关的任务,索引编制,收集统计信息。此角色不授予用户和角色管理权限。</td>
</tr>
<tr>
<td>dbOwner</td>
<td>提供对数据库执行任何管理操作的功能。此角色组合了readWrite,dbAdmin和userAdmin角色授予的权限。</td>
</tr>
<tr>
<td>userAdmin</td>
<td>提供在当前数据库上创建和修改角色和用户的功能。由于userAdmin角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供对数据库的超级用户访问权限,或者,如果作用于管理数据库,则提供对群集的访问权限。</td>
</tr>
<tr>
<td>clusterAdmin</td>
<td>提供最佳的集群管理访问。此角色组合了clusterManager,clusterMonitor和hostManager角色授予的权限。此外,该角色还提供了dropDatabase操作。</td>
</tr>
<tr>
<td>readAnyDatabase</td>
<td>仅在admin 数据库中使用,提供所有数据库的读权限。</td>
</tr>
<tr>
<td>readWriteAnyDatabase</td>
<td>尽在admin 数据库中使用,提供所有数据库的读写权限</td>
</tr>
<tr>
<td>userAdminAnyDatabase</td>
<td>尽在admin 数据库中使用,提供与userAdmin相同的用户管理操作访问权限,允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接提供超级用户访问权限。</td>
</tr>
<tr>
<td>dbAdminAnyDatabase</td>
<td>仅在admin 数据库中使用,提供与dbAdmin相同的数据库管理操作访问权限,该角色还在整个群集上提供listDatabases操作。</td>
</tr>
<tr>
<td>root</td>
<td>尽在admin 数据库中使用,提供超级权限</td>
</tr>
</tbody>
</table>
<p><span style="font-size: 16px; color: rgba(255, 0, 0, 1)"><strong>二、</strong></span><span style="font-size: 16px; color: rgba(255, 0, 0, 1)"><strong>创建管理员用户</strong></span></p>
<p><strong><span style="font-size: 14px">创建管理员</span></strong></p>
<p><span style="font-size: 14px">连接mongodb</span></p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre>mongo --host <span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.11</span></pre>
</div>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">use admin
db.createUser(
{
    user: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">myUserAdmin</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
    </span><span style="color: rgba(0, 0, 255, 1)">pwd</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">abc123</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
    roles: [ { role: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">userAdminAnyDatabase</span><span style="color: rgba(128, 0, 0, 1)">"</span>, db: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">admin</span><span style="color: rgba(128, 0, 0, 1)">"</span> }, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">readWriteAnyDatabase</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> ]
}
)</span></pre>
</div>
<p>创建管理员账号:myUserAdmin 密码:abc123</p>
<p>&nbsp;</p>
<p>查看创建的管理员账号</p>
<div class="cnblogs_code">
<pre>use admin<br>db.getUser(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">myUserAdmin</span><span style="color: rgba(128, 0, 0, 1)">"</span>)</pre>
</div>
<p>重启MongoDB实例</p>
<p><span style="font-size: 14px"><strong>连接MongoDB</strong></span></p>
<p>1、类似Mysql一样连接</p>
<div class="cnblogs_code">
<pre>mongo --host <span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.11</span> -u <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">myUserAdmin</span><span style="color: rgba(128, 0, 0, 1)">"</span> --authenticationDatabase <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">admin</span><span style="color: rgba(128, 0, 0, 1)">"</span> -p<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">abc123</span><span style="color: rgba(128, 0, 0, 1)">'</span></pre>
</div>
<p>结果:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> MongoDB shell version v4.<span style="color: rgba(128, 0, 128, 1)">0.10</span>
<span style="color: rgba(0, 128, 128, 1)">2</span> connecting to: mongodb:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">10.10.18.11:27017/?authSource=admin&amp;gssapiServiceName=mongodb</span>
<span style="color: rgba(0, 128, 128, 1)">3</span> Implicit session: session { <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : UUID(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3b067347-1b0e-4761-9399-cb3ad4ba6c93</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">) }
</span><span style="color: rgba(0, 128, 128, 1)">4</span> MongoDB server version: <span style="color: rgba(128, 0, 128, 1)">4.0</span>.<span style="color: rgba(128, 0, 128, 1)">10</span></pre>
</div>
<p>2、登录后进行验证</p>
<p>连接mongodb</p>
<div class="cnblogs_code">
<pre>mongo --host <span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.11</span></pre>
</div>
<p>进行验证</p>
<div class="cnblogs_code">
<pre>rs0:PRIMARY&gt;<span style="color: rgba(0, 0, 0, 1)"> use admin
switched to db admin
rs0:PRIMARY</span>&gt; db.auth(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">myUserAdmin</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">abc123</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> )
</span><span style="color: rgba(128, 0, 128, 1)">1</span></pre>
</div>
<p><span style="font-size: 16px; color: rgba(255, 0, 0, 1)"><strong>三、创建普通用户</strong></span></p>
<p><strong>创建一个普通用户</strong></p>
<p>用户名:myTester<br>密码:xyz123<br>权限:读写数据库 test, 只读数据库 reporting。</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">use test
db.createUser(
{
    user: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">myTester</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
    </span><span style="color: rgba(0, 0, 255, 1)">pwd</span>: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">xyz123</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
    roles: [ { role: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">readWrite</span><span style="color: rgba(128, 0, 0, 1)">"</span>, db: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">test</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> },
             { role: </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">read</span><span style="color: rgba(128, 0, 0, 1)">"</span>, db: <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">reporting</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)"> } ]
}
)</span></pre>
</div>
<p><strong>普通用户连接MongoDB实例</strong></p>
<div class="cnblogs_code">
<pre>mongo --host <span style="color: rgba(128, 0, 128, 1)">10.10</span>.<span style="color: rgba(128, 0, 128, 1)">18.11</span> -u <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">myTester</span><span style="color: rgba(128, 0, 0, 1)">"</span> --authenticationDatabase <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">test</span><span style="color: rgba(128, 0, 0, 1)">"</span> -p<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">xyz123</span><span style="color: rgba(128, 0, 0, 1)">'</span> </pre>
</div>
<p>结果:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> MongoDB shell version v4.<span style="color: rgba(128, 0, 128, 1)">0.10</span>
<span style="color: rgba(0, 128, 128, 1)">2</span> connecting to: mongodb:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">10.10.18.11:27017/?authSource=test&amp;gssapiServiceName=mongodb</span>
<span style="color: rgba(0, 128, 128, 1)">3</span> Implicit session: session { <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : UUID(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3e9011ee-729f-4112-acd1-f5d1515490ac</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">) }
</span><span style="color: rgba(0, 128, 128, 1)">4</span> MongoDB server version: <span style="color: rgba(128, 0, 128, 1)">4.0</span>.<span style="color: rgba(128, 0, 128, 1)">10</span></pre>
</div>
<p>验证权限</p>
<p>在test集合中插入、查询数据</p>
<div class="cnblogs_code">
<pre>rs0:PRIMARY&gt; db.test.insertOne({name:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sue</span><span style="color: rgba(128, 0, 0, 1)">"</span>,age:<span style="color: rgba(128, 0, 128, 1)">19</span>,status:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">p</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">})
{
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">acknowledged</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">,
      </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">insertedId</span><span style="color: rgba(128, 0, 0, 1)">"</span> : ObjectId(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">5d00b364a75d40ae9b83c64c</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">)
}
rs0:PRIMARY</span>&gt; db.test.<span style="color: rgba(0, 0, 255, 1)">find</span>({name:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sue</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">})
{ </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">_id</span><span style="color: rgba(128, 0, 0, 1)">"</span> : ObjectId(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">5d00b364a75d40ae9b83c64c</span><span style="color: rgba(128, 0, 0, 1)">"</span>), <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">name</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">sue</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">age</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 128, 1)">19</span>, <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">status</span><span style="color: rgba(128, 0, 0, 1)">"</span> : <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">p</span><span style="color: rgba(128, 0, 0, 1)">"</span> }<br><br></pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/sz-wenbin/p/11010403.html
頁: [1]
查看完整版本: MongoDB用户和密码登录