Próbuję dodać autoryzację do mojego MongoDB.
Robię to wszystko na Linuksie z MongoDB 2.6.1.
Mój plik mongod.conf jest w starym formacie zgodności
(tak właśnie przyszedł z instalacją).
1) Utworzyłem użytkownika administratora zgodnie z opisem w (3)
http://docs.mongodb.org/manual/tutorial/add-user-administrator/
2) Następnie edytowałem mongod.conf, odkomentowując tę linię
auth = true
3) W końcu ponownie uruchomiłem usługę mongod i próbowałem zalogować się za pomocą:
/usr/bin/mongo localhost:27017/admin -u sa -p pwd
4) Mogę się połączyć, ale mówi to po podłączeniu.
MongoDB shell version: 2.6.1
connecting to: localhost:27017/admin
Welcome to the MongoDB shell!
The current date/time is: Thu May 29 2014 17:47:16 GMT-0400 (EDT)
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
5) Teraz wygląda na to, sa
że utworzony przeze mnie użytkownik nie ma żadnych uprawnień.
root@test02:~# mc
MongoDB shell version: 2.6.1
connecting to: localhost:27017/admin
Welcome to the MongoDB shell!
The current date/time is: Thu May 29 2014 17:57:03 GMT-0400 (EDT)
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
[admin] 2014-05-29 17:57:03.011 >>> use admin
switched to db admin
[admin] 2014-05-29 17:57:07.889 >>> show collections
2014-05-29T17:57:10.377-0400 error: {
"$err" : "not authorized for query on admin.system.namespaces",
"code" : 13
} at src/mongo/shell/query.js:131
[admin] 2014-05-29 17:57:10.378 >>> use test
switched to db test
[test] 2014-05-29 17:57:13.466 >>> show collections
2014-05-29T17:57:15.930-0400 error: {
"$err" : "not authorized for query on test.system.namespaces",
"code" : 13
} at src/mongo/shell/query.js:131
[test] 2014-05-29 17:57:15.931 >>>
Jaki jest problem? Powtórzyłem całą procedurę 3 razy i
myślę, że zrobiłem to wszystko zgodnie z dokumentacją MongoDB. Ale to nie działa.
Oczekiwałem, że ten sa
użytkownik zostanie upoważniony do robienia czegokolwiek, aby
mógł następnie tworzyć innych użytkowników i udzielać im bardziej szczegółowych uprawnień.