MongoDB 创建管理员用户 Python 连接,其他机器访问,游标陷阱

目录

创建管理员用户

创建普通用户

创建能操作所有数据库的管理用户

Python 连接有密码的 MongoDB

允许其他机器访问

游标陷阱



创建管理员用户

没有权限操作普通数据库

use admin
db.createUser(
    {
      user:'x',
      pwd:'y',
      roles:[{role:'userAdminAnyDatabase',db:'admin'}]
     }
)
  • 切换到 admin 数据库
  • 账号名 x,密码 y,角色为 userAdminAnyDatabase,控制的数据库为 admin
  • 在配置文件 mongodb.cfg 添加如下两行内容

正常使用客户端

./mongo -u '用户名' -p '密码' --authenticationDatabase '数据库'

操作数据库会报错:

MongoDB 创建管理员用户 Python 连接,其他机器访问,游标陷阱_第1张图片

 

创建普通用户

对 example 数据库有读写权限

use example
db.createUser(
    {
     user:'name',
     pwd:'namepwd',
     roles:[
            {role:'readWrite',db:'example'},
            {role:'read',db:'example'}
           ]   
     }
)

添加了后本地的链接不上了,

MongoDB 创建管理员用户 Python 连接,其他机器访问,游标陷阱_第2张图片

重新配置

MongoDB 创建管理员用户 Python 连接,其他机器访问,游标陷阱_第3张图片

 

创建能操作所有数据库的管理用户

因为管理员能创建其他用户,但不能自己访问数据库

db.createUser(
    {
     user:'root',
     pwd:'zjk12345',
     roles:['root']
    }
)

连接配置如上,就可以操作数据库了

MongoDB 创建管理员用户 Python 连接,其他机器访问,游标陷阱_第4张图片

 

Python 连接有密码的 MongoDB

需要用 URI :

mongodb://用户名:密码@数据库地址/数据库名

几种连接方式:

根用户 root:mongodb://root:zjk12345@localhost 不需要指明数据库

没有权限限制,端口默认本地数据库:mongodb://localhost

有账号密码,端口默认本地数据库:mongodb://root:zjk12345@localhost

有账号密码,远程端口默认数据库:mongodb://root:[email protected]

连接没有权限,端口为 8001 远程数据库:mongodb://10.21.30.90:8001

有用户名,数据库:mongodb://root:zjk12345@localhost/chapter_8

 

允许其他机器访问

在配置文件中这里设置为 0.0.0.0

MongoDB 创建管理员用户 Python 连接,其他机器访问,游标陷阱_第5张图片

 

游标陷阱

 

 

你可能感兴趣的:(数据库)