要在MongoDB中创建用户和角色,您需要使用具有适当管理特权的mongo
Shell或MongoDB驱动程序。这是逐步指南:
mongo
Shell或MongoDB驱动程序连接到MongoDB实例。切换到管理数据库:由于用户管理是在管理员数据库中完成的,请通过运行:
<code>use admin</code>
创建角色:您可以创建自定义角色以封装特定特权。使用createRole
命令:
<code>db.createRole({ role: "readWriteAnyDatabase", privileges: [ { resource: { db: "", collection: "" }, actions: [ "find", "update", "insert", "remove" ] } ], roles: [] })</code>
此示例创建了一个角色readWriteAnyDatabase
,并具有特权,可以在任何数据库和集合上执行CRUD操作。
创建用户:要创建用户,请使用createUser
命令,指定用户的凭据及其应具有的角色:
<code>db.createUser({ user: "myUser", pwd: "myPassword", roles: [ { role: "readWriteAnyDatabase", db: "admin" } ] })</code>
该命令使用密码myPassword
创建用户myUser
,并为他们分配了readWriteAnyDatabase
角色。
验证:您可以使用以下方式验证用户的创建和角色:
<code>db.getUsers() db.getRoles({showPrivileges:true})</code>
在MongoDB中管理用户权限需要仔细的计划和遵守,以确保安全和正确的访问控制。这是一些推荐的做法:
read
, readWrite
, dbAdmin
和userAdmin
用于常见用例,仅在必要时创建自定义角色。确保在MongoDB中分配角色时的安全性涉及多种策略,以保护您的数据库免受未经授权的访问和滥用。这是增强安全性的关键步骤:
root
或userAdminAnyDatabase
)的用户数量。尽可能使用细粒度的角色。在MongoDB中自动化用户和角色管理可以显着提高效率并减少人为错误。以下是一些可以帮助的工具和脚本:
MongoDB自动化脚本:
pymongo
库连接到MongoDB并以编程方式执行命令。<code class="python">from pymongo import MongoClient client = MongoClient('mongodb://localhost:27017/') db = client.admin # Create a role db.command('createRole', 'customRole', privileges=[{'resource': {'db': '', 'collection': ''}, 'actions': ['find', 'update']}], roles=[]) # Create a user db.command('createUser', 'newUser', pwd='newPassword', roles=[{'role': 'customRole', 'db': 'admin'}])</code>
MongoDB指南针:
OPS经理和云管理器:
第三方工具:
<code class="yaml">- name: Create MongoDB user mongodb_user: database: admin name: newUser password: newPassword roles: customRole state: present</code>
mongodb shell脚本:
<code class="javascript">use admin db.createRole({ role: "customRole", privileges: [ { resource: { db: "", collection: "" }, actions: [ "find", "update" ] } ], roles: [] }); db.createUser({ user: "newUser", pwd: "newPassword", roles: [ { role: "customRole", db: "admin" } ] });</code>
通过利用这些工具和脚本,您可以简化管理用户和角色的过程,以确保其有效,安全地完成。
以上是如何在MongoDB中创建用户和角色?的详细内容。更多信息请关注PHP中文网其他相关文章!