DataEase v2 连接 MongoDB 数据源操作说明-MongoDB BI Connector用户创建
按照这个文档:DataEase v2 连接 MongoDB 数据源操作说明,装好MongoDB BI Connector与mongo数据库后,采用账户密码连接MongoDB BI Connector验证时,你可能会遇到这个问题:
Access denied for user 'xxx'
在官方文档 DataEase v2 连接 MongoDB 数据源操作说明 中,并未描述这个问题,是因为mongosqld-config.yml中未设置账号密码访问mongo,也没有设置 mechanism(认证机制),我相信大部分人都是需要账户密码,以及设置认证机制才能正常访问mongo。
我这里贴一个自己的配置,设置了mechanism:
systemLog:logAppend: falsepath: "/usr/local/mongodb-bi/logs/mongosqld.log"verbosity: 2security:enabled: truemongodb:net:uri: "172.22.11.17:27017"auth:username: "abc"password: "123456"source: "upm"mechanism: "SCRAM-SHA-1"net:bindIp: 0.0.0.0port: 3307ssl:mode: "allowSSL"PEMKeyFile: "/usr/local/mongodb-bi/crt/test.pem"CAFile: "/usr/local/mongodb-bi/crt/test.crt"schema:sample:namespaces: ["upm.*"]processManagement:service:name: mongosqlddisplayName: mongosqlddescription: "BI Connector SQL proxy server"
如果出现这个错误:
Access denied for user 'xxx'
你需要去mongo中建专门用于mong bi登录的账户,执行命令如下:
use admin
db.createUser({user: "biAdmin",pwd: "YourStrongPwd!",roles: [{ role: "readAnyDatabase", db: "admin" },{ role: "clusterMonitor", db: "admin" },{ role: "userAdminAnyDatabase", db: "admin" }]
})
数据库级角色说明(Database User Roles)
read:只读权限,可查询集合、索引、视图
readWrite:读写权限,可增删改查数据、创建索引
dbAdmin:数据库管理权限,可管理索引、集合、视图,执行统计命令
userAdmin:用户管理权限,可创建/修改/删除该库的用户和角色
dbOwner:数据库所有者,包含上述所有权限
集群级角色(Cluster Administration Roles)
clusterAdmin:集群管理权限,包含所有集群操作
clusterManager:集群管理权限,可管理复制集、分片,执行维护操作
clusterMonitor:集群监控权限,可查看集群状态、性能指标
hostManager:服务器管理权限,可管理服务器实例
备份恢复角色(Backup and Restoration Roles)
backup:备份权限,可备份数据
restore:恢复权限,可恢复数据
跨数据库角色(All-Database Roles)
readAnyDatabase:对所有数据库(除local)的只读权限
readWriteAnyDatabase:对所有数据库(除local)的读写权限
userAdminAnyDatabase:管理所有数据库用户和角色的权限
dbAdminAnyDatabase:管理所有数据库的权限
超级用户角色(Superuser Roles)
root:超级用户权限,包含所有权限
system:系统内部角色,最高权限