MongoDB - 관리자 사용자에게 권한이 없습니다.
MongoDB mong mong mong mong 。
MongoDB 2.6.1은 Linux입니다.
mongod.conf 입니다.
(본명: ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★.
1) (3)의 설명에 따라 admin 사용자를 작성했습니다.
http://docs.mongodb.org/manual/tutorial/add-user-administrator/
2) 이 행을 주석 해제하여 mongod.conf를 편집했습니다.
auth = true
3) 마지막으로 mongod 서비스를 재부팅하여 로그인을 시도했습니다.
/usr/bin/mongo localhost:27017/admin -u sa -p pwd
4) 접속할 수 있는데 접속할 때 이렇게 표시됩니다.
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가 된 것 sa
생성한 사용자에게 권한이 전혀 없습니다.
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 >>>
하고 3번 반복했습니다.
MongoDB 문서에 명시된 대로 모든 작업을 수행했다고 생각합니다.하지만 효과가 없어요.
줄 sa
가 어떤 을 할 수 됩니다.
그런 다음 다른 사용자를 생성하여 보다 구체적인 권한을 부여할 수 있습니다.
저도 같은 문제에 대해 고민하고 있었습니다.첫 번째 admin 사용자를 추가할 때 역할을 root로 설정한 후에는 모든 것이 잘 되었습니다.
use admin
db.createUser(
{
user: 'admin',
pwd: 'password',
roles: [ { role: 'root', db: 'admin' } ]
}
);
exit;
「 」가 되어 있는 admin
사용자는 다음과 같이 역할을 변경할 수 있습니다.
use admin;
db.grantRolesToUser('admin', [{ role: 'root', db: 'admin' }])
전체 인증 설정 참조는 인터넷을 통해 몇 시간 동안 조사한 후 작성한 단계를 참조하십시오.
좀 헷갈리네요.데이터베이스에 문의하려면 readWrite를 허가해야 할 것 같습니다.dbadmin 또는 useradmin을 가진 사용자는 데이터베이스 관리(추가 권한 부여 포함)는 가능하지만 쿼리를 수행하거나 데이터를 쓸 수 없습니다.
그러니 자신에게 readWrite를 허락하면 괜찮을 거야 -
http://docs.mongodb.org/manual/reference/built-in-roles/ #readWrite
현재 사용자를 변경하는 방법에 대한 간단한 예가 도움이 될 수 있습니다.이게 바로 내가 찾던 거야
@JohnPetrone의 조언에 따라 grantRolesToUser를 사용하여 관리자 사용자에게 readWrite 역할을 추가했습니다.
> use admin
> db.grantRolesToUser("admin",["readWrite"])
> show collections
system.users
system.version
시도해 보십시오. --authenticationDatabase 플래그를 사용하면 도움이 됩니다.
mongo --port 27017 -u "admin" -p "password" --authenticationDatabase "admin"
이 부분에서 이 답변이 매우 늦게 오는 것을 알지만, 나는 여러분이 그것을 확인해 주길 바란다.
과 그 에게 부여한 .root
그럼 문제가 해결되지만 사용자에게 권한을 부여하기 전에 이들 역할이 정확히 어떤 역할을 하는지 이해해야 합니다.
에게 「」를 했습니다.userAdminAnyDatabase
기본적으로 사용자에게 모든 데이터베이스의 사용자를 관리할 수 있는 권한을 부여합니다.사용자에게 하려던 작업이 역할 정의 범위를 벗어났습니다.
root
에는 이 역할의 정의가 포함되어 .readWriteAnyDatabase
,dbAdminAnyDatabase
슈퍼 유저로 하는 다른 역할도 있습니다(사용자가 무엇이든 할 수 있기 때문에 필요).
역할 정의를 확인하여 특정 작업을 완료하기 위해 사용자에게 제공해야 하는 역할을 확인할 수 있습니다.https://docs.mongodb.com/manual/reference/built-in-roles/ 모든 사용자를 슈퍼 사용자로 만드는 것은 권장되지 않습니다.
간단한 질문입니다.
- 대상 DB를 관리자가 아니라 전환해야 합니다.
사용방법DB
- db 인증 확인 기준
show users(사용자 표시)
- {}개의 빈 개체가 표시되는 경우 이것이 질문입니다.입력만 하면 됩니다.
db.createUser({사용자: "yourUser", pwd: "password", 역할: ["readWrite", "dbAdmin"] } )
또는
db.grantRolesToUser('yourUser', {역할: "dbAdmin", db: "yourDB"})
MongoDB Compass의 호스트명이 프로젝트용으로 admin을 가리키고 있었기 때문에 이 문제가 발생하였습니다.호스트명 뒤에 /projectname을 추가하여 수정:) 다음을 시도합니다.
- MongoDB 지도책 웹사이트에서 프로젝트를 선택합니다.
- MongoDB 나침반으로 연결/연결
- 나침반 다운로드 / OS 선택
- 나침반 1.12 이후 사용
- 연결 문자열을 나침반 1.12 이상 아래에 복사합니다.
- MongoDB 나침반/연결(왼쪽 위)/연결처 열기
- 연결 문자열이 검색됨/예/
- 호스트명 뒤에 프로젝트명을 추가합니다.cluster9-foodie.mongodb.net/projectname
- POSTMAN을 사용하여 API를 연결하고 테스트했습니다.
- 성공하다.
코드에도 같은 접속 문자열을 사용합니다.
- ★★★★
- mongodb+srv://projectname: password@cluster9-foodie.mongodb.net/admin
- ★★★★★★★★★★★★★★★★★★:
- mongodb+srv://projectname: password@cluster9-foodie.mongodb.net/projectname
행운을 빌어요.
Use Admin :
use admin
Create a super user :
db.createUser(
{
user: "master",
pwd: "test@123",
roles: [
{
role: "readWriteAnyDatabase",
db: "admin"
},
{
"role" : "dbAdminAnyDatabase",
"db" : "admin"
},
{
"role" : "clusterAdmin",
"db" : "admin"
},
"userAdminAnyDatabase"
]
}
)
Atlas를 사용하는 경우 mongo 쉘을 통해 사용자를 생성할 수 없습니다.
한동안 벽에 머리를 부딪히다가 이걸 발견했어요. https://www.mongodb.com/community/forums/t/cant-create-a-root-user-from-mongo-shell/101369
비슷한 문제로 이 스레드를 발견했는데 데이터베이스 이름 대신 컬렉션 이름을 사용하는 것이 문제였습니다.
여기 Windows 환경에서도 같은 문제가 발생했습니다.Bitnami Dream Factory를 설치하고 시스템 부팅 시 부팅되는 다른 MongoDb도 설치합니다.MongoDbService(오류 없이 시작)를 실행하고 있었는데, 실제로 Bitnami의 MongoDbService에 접속하고 있다는 것을 알게 되었습니다.서버에서 실행 중인 다른 mongoDB 인스턴스가 없는지 확인하십시오.
행운을 빕니다.
쉘 가 mongo에 올바르게 할 수 해 주십시오.mongod
허가 거부하다
하고, 하고 있는 것 에, 에서 가 접속되어 있는 것을 .mongod
사용하지 않습니다.할 수 .--port <port>
과 process의 양쪽 합니다.
mydb
", "db.createUser({사용자: "test", pwd: "secret", "dbAdmin", "Digestor")
admin db에 대한 인증을 받아야 하며 DB에서 로컬호스트 예외(mongoDB의 온프레미스 호스트용)를 피하기 위해 최소한 올바른 권한을 가진 역할이 필요하다는 데 동의합니다.다만, 모든 것이 갖추어져 있고, 아직 거의 모든 명령어에 대해 허가된 예외는 없습니다.Mongo Atlas를 사용하여 작성된 mongoDB에 접속할 때, 그 이유를 알 수 있는 장소를 다음에 나타냅니다.
mongo Atlas에서 mongoDB를 호스팅하고 있는 경우 다음 사항을 체크합니다.
https://docs.atlas.mongodb.com/unsupported-commands/
Centos 7 for MongoDB 4.2에서 다음 절차를 수행했습니다.(리모트 사용자)
mongod.conf 파일 업데이트
vi /etc/mongod.conf
net:
port: 27017
bindIp: 0.0.0.0
security:
authorization: enabled
MongoDB 서비스 데몬 시작
systemctl start mongod
MongoDB 쉘 열기
mongo
셸에서 이 명령어를 실행합니다.
use admin
db.createUser(
{
user: 'admin',
pwd: 'YouPassforUser',
roles: [ { role: 'root', db: 'admin' } ]
}
);
원격 루트 사용자가 생성되었습니다.이제 개발 머신의 MongoDB GUI 도구를 사용하여 이 데이터베이스 연결을 테스트할 수 있습니다.Robo 3T처럼
MongoDB 쉘 버전 4.2.8의 경우 auth를 사용하여 데이터베이스를 백업하기 위해 여러 가지 방법을 시도해 보았습니다.이러한 솔루션은 다음과 같습니다.
mongodump -h <your_hostname> -d <your_db_name> -u <your_db_username> -p <your_db_password> --authenticationDatabase admin -o /path/to/where/i/want
이는 mongodb.conf에서 noAuth=true를 설정하지 않았기 때문일 수 있습니다.
# Turn on/off security. Off is currently the default
noauth = true
#auth = true
이 설정을 마친 후 다음을 사용하여 서비스를 재시작합니다.
서비스 mongod 재시작
언급URL : https://stackoverflow.com/questions/23943651/mongodb-admin-user-not-authorized
'itsource' 카테고리의 다른 글
ReactJS에서 클릭 이벤트를 수동으로 트리거하는 방법 (0) | 2023.03.23 |
---|---|
SSH에서 Git을 사용하여 특정 디렉터리 가져오기 (0) | 2023.03.23 |
Zurb Foundation 탑바가 전혀 작동하지 않음 (0) | 2023.03.23 |
jq 배열에서 값 선택 (0) | 2023.03.23 |
레디스엔 언제?언제 MongoDB에 접속합니까? (0) | 2023.03.23 |