it编程 > 数据库 > mongodb

MongoDB用户管理授权方式

36人参与 2026-04-16 mongodb

1 角色类型

2 注意事项

授权常见的模式分两种:

3 给单个数据库授权

连接串:mongodb://test:xxxxx@mongo.rsq.cn:27017/?tls=false&authsource=test1

# 新建数据库
use test1

# 新建一个测试collection
# 默认一个db中没有collection,show dbs是看不到这个数据库的
db.site.insert({"name":"test1"})

# 查看数据库
show dbs

# 给新数据库创建用户,密码跟之前保持一致
db.createuser({user: "test",pwd: "xxxxx",roles: [ { role: "dbowner", db: "test1" } ]})

# 如果需要角色授权,则有如下命令
db.runcommand(
    {
        grantrolestouser: "test",
        roles:
            [
                { role: "dbadminanydatabase", db: "admin" }
            ]
    }
)

4 给一个用户授权多个数据库

连接串:mongodb://test:xxxxx@mongo.rsq.cn:27017/?tls=false

# 需要进入到admin数据库授权多个数据库给同一个用户
use admin

# 创建用户
db.createuser({
    user: "test",
    pwd: "xxxxx",
    roles: [
        { 
            role: "dbadmin", db: "admin" 
        },
        { 
            role: "dbowner", db: "test1" 
        },
        { 
            role: "dbowner", db: "test2" 
        },
        { 
            role: "dbowner", db: "test3" 
        }
    ]
})

5 其它命令

# 查看db相关权限
db.runcommand(
    {
        rolesinfo: { role: "readwrite", db: "" },
        showprivileges: true
    }
)

# 查询用户
db.getusers();
show users

# 删除用户
db.dropuser('admin')

# 修改用户密码
db.updateuser('admin', {pwd: '111111'})

# 创建管理员用户,需要使用admin数据库
use admin  
db.createuser({user: "test",pwd: "xxxxx",roles: [ { role: "dbadmin", db: "test" } ]})

# 回收用户角色
db.revokerolesfromuser(
    "test",
    [
        { role: "root", db: "admin" }
    ]
)

# 删除数据库
use percepai-cowa3d-corolla-v56tion
db.dropdatabase()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

MongoDB权限设置与登录授权方式及解读

04-16

Apache通过LimitInternalRecursion指令防止重写死循环

04-19

MongoDB实现全文搜索代码示例

04-07

MongoDB事务的限制和注意事项详解

04-07

在MongoDB中使用多文档事务的详细步骤

04-07

MongoDB使用explain命令的步骤和代码示例

03-26

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论