mongodb에서 새로 생성 된 데이터베이스에 사용자를 추가하고 싶습니다. db.addUser (username, password)를 사용하고 있습니다. 하지만 mongoAuthentication 예외를 제공하고 있습니다. 이유를 말해주세요. 다음 번에 동일한 데이터베이스를 사용할 때 사용자를 만들기 위해 통과 한 것과 동일한 crednetials 집합으로 사용할 수 있도록 사용자를 추가하고 싶습니다.mongo C# 드라이버를 사용하여 데이터베이스에 사용자 추가
1
A
답변
1
관리자의 사용자와 일반 사용자를 생성하는 과정은 여기에 설명되어 있습니다 :
0
관리자로 사용자와 함께 db를 이미 생성했다면 데이터베이스를 만들려면 새 사용자를 만들기 전에 해당 자격 증명으로 연결해야합니다.
0
당신은 다음과 같은 코드를 사용하여 사용자를 추가 할 수 있습니다.
db.addUser(
{
user: "user",
pwd: "pass",
roles: [ "root" ]
}
)
0
--auth
매개 변수와 함께 시작mongod.exe
. 이렇게하면 인증 모드가 활성화 된 MongoDB가 시작됩니다.- MongoDB를 처음 시작할 때 사용자가 없기 때문에 "localhost 예외"로 간주됩니다 ("admin.system.users에 구성된 사용자가 없으며 로컬 호스트 액세스 허용"이라는 메시지가 나타납니다). 콘솔). 즉, admin 데이터베이스 (admin 사용자)의 첫 번째 사용자를 작성한 다음 다른 일반 사용자를 작성할 수있는 권한을 갖게됩니다.
- 는 다음 명령을
이제 관리자 사용자가 생성되고, 당신은 할 수 이 admin 사용자를 사용하여 데이터베이스에 대한 다른 일반 사용자를 작성하십시오. 구현에 따라 C# 코드 나 명령 줄 등을 사용할 수 있습니다.
private static bool CreateUser(string strDBName) { try { if (!string.IsNullOrEmpty(strDBName)) { // prepare admin credentials MongoCredential cred = MongoCredential.CreateCredential("admin", "adminUser", "adminPass"); MongoClientSettings setting = new MongoClientSettings(); setting.Credentials = new[] { cred }; var user = new BsonDocument { { "createUser", "regularUser" }, { "pwd", "regularPass" }, { "roles", new BsonArray { new BsonDocument { { "role", "readWrite" }, { "db", strDBName } } } } }; new MongoClient(setting).GetDatabase(strDBName).RunCommand<BsonDocument>(user); return true; } else { return false; } } catch (MongoCommandException) { return true; } // if user already exists catch { return false; } }
mongo.exe
을 시작 관리자 사용자를 생성하고 입력하려면 다음과 같이
> use admin
> var user = {
"user" : "adminUser",
"pwd" : "adminPass",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> db.createUser(user);
당신은이 사용하는 C# 코드를 수행 할 수 있습니다
private static bool fnCreateAdminUser()
{
try
{
var user = new BsonDocument { { "createUser", "adminUser" }, { "pwd", "adminPass" }, { "roles", new BsonArray { new BsonDocument { { "role", "userAdminAnyDatabase" }, { "db", "admin" } } } } };
new MongoClient().GetDatabase("admin").RunCommand<BsonDocument>(user);
return true;
}
catch (MongoCommandException) { return true; }
catch { return false; }
}
당신은이에 대한 자세한 내용은 this 블로그 게시물을 참조 할 수 있습니다 : 지정된 데이터베이스에 대한 사용자를 만듭니다 샘플 C#을 방법은 다음과 같습니다. 사용자 역할을 추가/변경하는 것과 같은 다른 것들도 설명합니다.
관련 문제
- 1. C# 드라이버를 사용하여 특정 mongo 보조를 쿼리하십시오.
- 2. mongo C# 드라이버를 사용하여 배열/목록의 항목을 업데이트하는 방법은 무엇입니까?
- 3. mongo db C# 드라이버를 사용하여 "및"쿼리를 수행하는 방법은 무엇입니까?
- 4. 쿼리 개체를 만들지 않고 C# Mongo 드라이버를 사용하여 쿼리 하시겠습니까?
- 5. mongo C# 드라이버를 사용하여 사용자 정의 객체 배열을 직렬화하여 저장하는 방법은 무엇입니까?
- 6. C# 드라이버를 사용하여 MongoDB에서 샤딩하기
- 7. MongoDb에서 C++ 드라이버를 사용하여 희소 색인 생성
- 8. odbc 드라이버를 사용하여 ruby에서 데이터베이스에 액세스하기 (구제)
- 9. Java 드라이버를 사용하여 mongo db에서 중첩 문서 얻기
- 10. 데이터베이스에 사용자 사진 추가
- 11. Mongo db C# serialization
- 12. Mongo 데이터베이스에 대한 성능 질문이
- 13. 자바 드라이버를 사용하는 GridFS의 사용자 정의 _id
- 14. Mongo 드라이버를 업데이트 한 후 Update.Setwrap에서 Nullreference 예외가 발생했습니다.
- 15. LAMP (PHP) MDBTools 드라이버를 사용하여 ODBC를 사용하여 Access 데이터베이스에 액세스
- 16. 데이터베이스에 Windows 사용자 이름 추가
- 17. 재생! 2 Framework - Java Mongo 드라이버 추가
- 18. C# Mongo Driver - MongoCollection.Group 메서드
- 19. C# 사용자 설정을 데이터베이스에 저장
- 20. 셀렌 웹 드라이버를 사용하여 파일 업로드 C#
- 21. codeigniter를 사용하여 데이터베이스에 데이터 추가
- 22. PDO 드라이버를 사용하여 mongodb에 연결
- 23. C++ linux 사용자 추가
- 24. Spring Mongo Log4j 사용자 정의
- 25. Mongo C# ignore 속성
- 26. mongo 데이터베이스의 레코드를 다른 데이터베이스에 어떻게 삽입합니까?
- 27. MongoDB C 드라이버를 내 프로그램에 연결하는 방법
- 28. mongodb에 데이터베이스에 대한 새 사용자 추가
- 29. 데이터베이스에 항목을 게시 한 사용자 추가
- 30. C# 및 ASP.NET을 사용하여 데이터베이스에 이미지 파일 추가
이는 관리자의 자격 증명으로 연결해야 함을 의미합니다. 그런 다음 모든 데이터베이스의 사용자를 데이터베이스에 추가하거나 관리자의 데이터베이스에 저장합니다. –
그리고 db에 자격 증명이없는 경우 –