이 문서의 대상:
MongoDB 권한 설정에 익숙하지 않은 사용자
MongoDB 개발자
MongoDB에 관심이 있는 다른 개발자
기술에 관심이 있는 사람
MongoDB는 데이터베이스 기반의 분산 파일 저장소입니다. 현재 주류 NoSQL 데이터베이스로 많은 고성능 대규모 시스템에 적용되어 왔습니다. 이전에 MongoDB를 접해본 적이 없다면 MongoDB 공식 웹사이트를 방문하여 주요 기능과 응용 프로그램 시나리오를 빠르게 알아볼 수 있습니다. 영어 수준이 매우 제한적이라면 MongoDB Baidu 백과사전을 읽어 자세히 알아볼 수 있습니다. 조만간 기술 정보를 읽어야 하기 때문에 개인적으로 영어 정보를 직접 읽는 것을 권장합니다.
본 글의 환경은 CentOS 7.3 64-bit 기준이며, MongoDB 버전은 3.2.4입니다.
서버에서 슈퍼유저 권한으로 yum 설치를 실행합니다. 명령은 다음과 같습니다.
[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!
MongoDB 설치 디렉터리를 찾았습니다
위 결과에서 알 수 있듯이 현재 /usr/bin 하위에 mongo가 설치되어 있으니 이 디렉터리로 들어갑니다.
[username@xxx]# find -name mongo /etc/sysconfig/mongod /usr/bin/mongod
mongodb.conf 구성을 추가하세요. /usr/local/mongodb 디렉토리에 구성 파일, 데이터 및 로그 파일을 배치하고 /usr/local/mongodb 디렉토리에 데이터 및 날짜 디렉토리를 생성하십시오: 데이터 및 로그
[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
mongo 서비스 시작
[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
MongoDB 연결
MongoDB가 설치되었고 이제 시작되었으며 서버에서 클라이언트로 연결할 수 있습니다.
[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의 모든 라이브러리와 권한, 백업, 클러스터 등의 작업을 관리합니다. 아래 코드 블록 영역에서 굵게 표시된 부분은 MongoDB 쉘 명령이고, 이탤릭체 부분은 쉘 명령을 실행한 후의 결과입니다.
use admin switched to db admin db.createUser({user:"root", pwd: "123456", roles: ["root"]}) Successfully added user: { "user" : "root", "roles" : [ "root" ] }
관리 라이브러리에 대한 관리자 사용자를 생성하고 관리자 권한을 부여합니다. <strong> </strong>
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" } ]}
새 라이브러리 비즈 생성, 라이브러리에 사용자 데모, 비밀번호 데모 추가, 읽기, 쓰기 및 관리자 권한 부여 .
생성된 사용자를 인증하세요. 이 단계는 매우 중요합니다. 인증이 완료되면 쉘을 종료합니다.
use biz switched to db biz db.createUser({user:"demo", pwd:"demo", roles:["readWrite", "dbAdmin"]}) Successfully added user: { "user" : "demo", "roles" : [ "readWrite", "dbAdmin" ] }
/usr/local/mongodb/mongodb.conf 구성 파일을 수정하고, 다음 내용을 추가한 후 저장합니다. auth=true
서비스 종료 후 다시 시작
db.auth('demo', 'demo') 1 # 1 - 表示认证成功,0 - 表示失败 exit bye
biz 데이터베이스에 익명으로 연결을 시도한 후 show collections
명령을 실행하면 확인 실패 메시지 not authorized for query on biz.system.namespaces
가 표시됩니다. 해당 명령어는 다음과 같습니다.
// 查看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
추가된 사용자와 비밀번호를 이용해 biz 라이브러리에 접속한 후, show collections
을 실행하여 생성합니다. 사용자를 수집하고 데이터를 삽입하여 테스트하여 올바른 결과를 얻을 수 있는지 확인합니다. <code><br><em>{ "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }</em>
{ "_id" : ObjectId("58f1e4aff754011ea2e23238"), "name" : "aa" }
[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
권한 설정이 완료되었습니다!
MongoDB 권한 설정 과정에서 사용자 추가 후 반드시 해당 사용자 인증을 수행해야 합니다. 그렇지 않으면 해당 사용자의 권한이 무효화되어 적용됩니다. 이 문서에서는 몇 가지 간단한 권한만 다룹니다. 더 많은 기본 권한에 대해서는 공식 문서를 참조하세요. 구성 과정에서 문제가 발생하면 토론과 의사 소통을 위해 메시지를 남길 수 있습니다.
[관련 추천]
1. 무료 무료 mysql 온라인 동영상 튜토리얼
위 내용은 주류 NoSQL 데이터베이스 - MongoDB 권한 설정에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!