>  기사  >  데이터 베이스  >  주류 NoSQL 데이터베이스 - MongoDB 권한 설정에 대한 자세한 설명

주류 NoSQL 데이터베이스 - MongoDB 권한 설정에 대한 자세한 설명

零下一度
零下一度원래의
2017-05-06 14:57:241486검색

이 문서의 대상:

  • MongoDB 권한 설정에 익숙하지 않은 사용자

  • MongoDB 개발자

  • MongoDB에 관심이 있는 다른 개발자

  • 기술에 관심이 있는 사람

MongoDB는 데이터베이스 기반의 분산 파일 저장소입니다. 현재 주류 NoSQL 데이터베이스로 많은 고성능 대규모 시스템에 적용되어 왔습니다. 이전에 MongoDB를 접해본 적이 없다면 MongoDB 공식 웹사이트를 방문하여 주요 기능과 응용 프로그램 시나리오를 빠르게 알아볼 수 있습니다. 영어 수준이 매우 제한적이라면 MongoDB Baidu 백과사전을 읽어 자세히 알아볼 수 있습니다. 조만간 기술 정보를 읽어야 하기 때문에 개인적으로 영어 정보를 직접 읽는 것을 권장합니다.

MongoDB 설치

본 글의 환경은 CentOS 7.3 64-bit 기준이며, MongoDB 버전은 3.2.4입니다.

  1. 서버에서 슈퍼유저 권한으로 yum 설치를 실행합니다. 명령은 다음과 같습니다.

  2. [username@xxx]# su [username] -- username 为你登陆服务器的用户名
    [username@xxx]# yum -y install mongodb-server  mongodb
    如果安装成功,你会得到如下类似的结果:
    Installed:
    mongodb-server.x86_64 0:2.6.12-4.el7
    Complete!
  3. MongoDB 설치 디렉터리를 찾았습니다

    위 결과에서 알 수 있듯이 현재 /usr/bin 하위에 mongo가 설치되어 있으니 이 디렉터리로 들어갑니다.

  4. [username@xxx]# find -name mongo
    /etc/sysconfig/mongod
    /usr/bin/mongod
  5. mongodb.conf 구성을 추가하세요. /usr/local/mongodb 디렉토리에 구성 파일, 데이터 및 로그 파일을 배치하고 /usr/local/mongodb 디렉토리에 데이터 및 날짜 디렉토리를 생성하십시오: 데이터 및 로그

  6. [username@xxx]# cd /usr/local
    [username@xxx]# mkdir mongodb
    [username@xxx]# cd mongodb
    [username@xxx]# mkdir data
    [username@xxx]# mkdir logs
    [username@xxx]# vi mongodb.conf
    在打开的文件中添加以下内容,然后保存:
    dbpath = /usr/local/mongodb/data
    logpath = /usr/local/mongodb/logs/mongod.log
    port = 27017
    fork = true
    nohttpinterface = true
  7. mongo 서비스 시작

  8. [username@xxx]# /usr/bin/mongod --config /usr/local/mongodb/mongodb.conf
    about to fork child process, waiting until server is ready for connections.
    forked process: 9516
    child process started successfully, parent exiting
  9. MongoDB 연결

    MongoDB가 설치되었고 이제 시작되었으며 서버에서 클라이언트로 연결할 수 있습니다.

  10. [username@xxx]# mongo 127.0.0.1:27017
    MongoDB shell version: 2.6.12
    connecting to: 127.0.0.1:27017/test
    Welcome to the MongoDB shell.
    For interactive help, type "help".
    For more comprehensive documentation, see
    http://docs.mongodb.org/
    Questions? Try the support group        http://groups.google.com/group/mongodb-user

MongoDB 권한 설정

  1. 루트 사용자를 생성하고 슈퍼 관리자 권한(루트)을 부여하면 슈퍼 관리자는 다음을 수행할 수 있습니다. MongoDB의 모든 라이브러리와 권한, 백업, 클러스터 등의 작업을 관리합니다. 아래 코드 블록 영역에서 굵게 표시된 부분은 MongoDB 쉘 명령이고, 이탤릭체 부분은 쉘 명령을 실행한 후의 결과입니다.

  2. use admin
    switched to db admin
    db.createUser({user:"root", pwd: "123456", roles: ["root"]})
    Successfully added user: { "user" : "root", "roles" : [ "root" ] }
  3. 관리 라이브러리에 대한 관리자 사용자를 생성하고 관리자 권한을 부여합니다.
    <strong> </strong>

  4. use admin
    switched to db admin
    db.createUser({user:"admin", pwd:"admin", roles:
    [{role:"userAdminAnyDatabase", db:"admin"}]})
    Successfully added user: {
    "user" : "admin", "roles" : [
    {
    "role" : "userAdminAnyDatabase",
    "db" : "admin"
    }
    ]}
  5. 새 라이브러리 비즈 생성, 라이브러리에 사용자 데모, 비밀번호 데모 추가, 읽기, 쓰기 및 관리자 권한 부여 .

  6. rreee
  7. 생성된 사용자를 인증하세요. 이 단계는 매우 중요합니다. 인증이 완료되면 쉘을 종료합니다.

  8. use biz
    switched to db biz
    db.createUser({user:"demo", pwd:"demo", roles:["readWrite", "dbAdmin"]})
    Successfully added user: { "user" : "demo", "roles" : [ "readWrite", "dbAdmin" ] }

확인을 활성화하고 MongoDB 서비스를 다시 시작하세요.

  1. /usr/local/mongodb/mongodb.conf 구성 파일을 수정하고, 다음 내용을 추가한 후 저장합니다.
    auth=true

  2. 서비스 종료 후 다시 시작

  3. db.auth(&#39;demo&#39;, &#39;demo&#39;)
    1
     # 1 - 表示认证成功,0 - 表示失败
    exit
    bye

권한이 설정되었는지 확인 성공적으로

  1. biz 데이터베이스에 익명으로 연결을 시도한 후 show collections 명령을 실행하면 확인 실패 메시지 not authorized for query on biz.system.namespaces가 표시됩니다. 해당 명령어는 다음과 같습니다.

  2. // 查看mongo进程信息
    [username@xxx]# ps -def|grep mongo
    root      9516     1  0 15:08 ?        00:00:30 /usr/bin/mongod --config mongodb.conf
    root      9759  9614  0 16:55 pts/0    00:00:00 grep --color=auto mongo
    // 杀死进程
    [username@xxx]# kill -4 9516
    // 启动MongoDB
    [username@xxx]# /usr/bin/mongod --config /usr/local/mongodb/mongodb.conf
    about to fork child process, waiting until server is ready for connections.
    forked process: 9783
    child process started successfully, parent exiting
  3. 추가된 사용자와 비밀번호를 이용해 biz 라이브러리에 접속한 후, show collections을 실행하여 생성합니다. 사용자를 수집하고 데이터를 삽입하여 테스트하여 올바른 결과를 얻을 수 있는지 확인합니다.
    <code><br><em>{ "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }</em>{ "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }

  4. [username@xxx]# /usr/bin/mongo 127.0.0.1:27017/biz
    MongoDB shell version: 2.6.12
    connecting to: 127.0.0.1:27017/biz
    show collections
    2017-04-15T17:04:20.662+0800 error: { "$err" : "not authorized for query on biz.system.namespaces", "code" : 13 } at src/mongo/shell/query.js:131
  5. 권한 설정이 완료되었습니다!

요약

MongoDB 권한 설정 과정에서 사용자 추가 후 반드시 해당 사용자 인증을 수행해야 합니다. 그렇지 않으면 해당 사용자의 권한이 무효화되어 적용됩니다. 이 문서에서는 몇 가지 간단한 권한만 다룹니다. 더 많은 기본 권한에 대해서는 공식 문서를 참조하세요. 구성 과정에서 문제가 발생하면 토론과 의사 소통을 위해 메시지를 남길 수 있습니다.

[관련 추천]

1. 무료 무료 mysql 온라인 동영상 튜토리얼

MySQL 최신 매뉴얼 튜토리얼

3. 데이터베이스 설계에 관한 사항

위 내용은 주류 NoSQL 데이터베이스 - MongoDB 권한 설정에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.