2013-08-07 5 views
3

현재 mongodb를 데이터베이스로 사용하는 프로젝트에서 작업 중이며 symfony config.yml의 mongo 구성에서 보안을 시작하지 않았습니다.DoctrineMongoDBBundle에서 인증 사용

이것은 내 config.yml이 프로젝트 시작일 때처럼 보입니다.

doctrine_mongodb: 
connections: 
    default: 
     server: mongodb://localhost:27017 
     options: {} 
default_database: louisv 
document_managers: 
    default: 
     auto_mapping: true 

이 매개 변수를 사용하면 프로젝트가 잘 작동합니다.

하지만 mongodb 데이터베이스에 보안을 추가하고 싶습니다. 그래서 mongodb에 대한 문서를 따라 사용자를 만들려고했습니다. admin 데이터베이스의 "admin"사용자와 louisv 데이터베이스의 "louisv"사용자를 작성했습니다 (관리 데이터베이스는 기본적으로 존재하는 데이터베이스이고 louisv는 내 것입니다).

이제이 새로운 사용자를 Symfony에서 사용하고 싶습니다. 내 conf.yml 파일에서 내 옵션 매개 변수를 변경하고 지금 내가 무엇을 가지고 :

Failed to connect to: localhost:27017: Authentication failed on database 'admin' with username 'louisv': auth fails

이상한 원인 내 DEFAULT_DATABASE는

doctrine_mongodb: 
connections: 
    default: 
     server: mongodb://localhost:27017 
     options: 
      username: louisv 
      password: password 
default_database: louisv 
document_managers: 
    default: 
     auto_mapping: true 

을 이제 심포니에서 내 응용 프로그램을 입력 할 때 어느 .

"louisv '이 아니라'관리 '는 내가 관리자의 것들에 자격 증명을 변경하면, 나는 또 다른 오류가 있습니다

localhost:27017: not authorized for query on louisv.User

사용자를 검색하는 것처럼 보이지만 쿼리를 수행 할 수없는 것처럼 보이는 것이 좋습니다.

답변

7

대신 :

server: mongodb://localhost:27017 

다음은 트릭을해야 다음, 지금

server: mongodb://localhost:27017/louisv 

분명히, 교리 ODM 번들은 또한 "DB"옵션이 있습니다 당신은 다음과 같은 옵션이 있습니다, 그래서 :

connections: 
    default: 
     server: mongodb://louisv:[email protected]:27017/louisv 

또는

connections: 
    default: 
     server: mongodb://localhost:27017 
     options: 
      username: louisv 
      password: password 
      db: louisv 

연결이 끊어진 경우 자동 재 인증을 허용하는 첫 번째 옵션이 좋습니다.

은 참조 :

@의 derick의 대답에 추가
+0

덕분에 지금 작동을 많이 저장하면 설정 파일 별도의 "매개 변수"파일에 사용자 이름과 암호를 유지하는 것을 잊지 마십시오! 나는 많은 것을 수색했지만이 간단한 답을 찾지 못했습니다! 다시 Thx! – Zaidar

+0

안녕하세요, 귀하의 솔루션을 시도했지만 DB에 연결하지 않습니다. DB 자격 증명을 변경 한 후 mongo를 다시 시작해야합니까? 이전과 마찬가지로 사용자 이름과 비밀번호가 없습니다. – Geetika

0

, 내 구성은 여전히 ​​"기본"데이터베이스에 연결을 시도했다 - default_database 항목이 해결 덧붙였다.

connections: 
    default: 
     server: "mongodb://myuser:[email protected]:27017/mydb" 
default_database: mydb 

소스 제어 :