자동 스키마 모드(MongoDB에서 스키마 유지)
이 페이지의 내용
개요
--schemaSource
옵션은 mongosqld
가 스키마 저장 을 위해 연결된 MongoDB 인스턴스 의 특정 데이터베이스 를 사용하도록 지시합니다. mongosqld
는 스키마 저장 에 사용할 새 데이터베이스 를 만들거나 기존 데이터베이스 를 사용할 수 있습니다.
이전에 스키마 저장으로 사용된 기존 데이터베이스를 지정하는 경우 --schemaMode
옵션은 mongosqld
가 지정된 데이터베이스에 새 스키마 데이터를 쓸지 아니면 읽기만 수행할지 여부를 결정합니다. 현재 존재하지 않는 데이터베이스를 지정하는 경우에는 --schemaMode
을 auto
로 설정해야 합니다.
다음 예제 명령은 sampleDb
데이터베이스를 사용하여 스키마 정보를 저장하고 --schemaMode
를 auto
로 설정합니다.
mongosqld --schemaSource sampleDb --schemaMode auto
샘플링 모드에 대해 자세히 알아보려면 샘플링 모드 참고 차트를 참조하세요.
스키마 재생성
기본적으로 mongosqld
는 스키마를 생성한 후 데이터를 자동으로 리샘플링하지 않습니다. --schemaRefreshIntervalSecs
옵션을 지정하면 { mongosqld
가 자동으로 데이터를 리샘플링하고 고정된 일정에 따라 스키마를 다시 생성하도록 지시합니다.
스키마에 대한 일회성 업데이트를 강제 실행하려면 SQL 클라이언트에서 FLUSH SAMPLE 명령을 사용합니다.
지속형 스키마에 대한 사용자 권한
MongoDB 인스턴스가 인증을 사용하는 경우 캐시된 샘플링에 설명된 권한 외에도 지정된 스키마 데이터베이스에 대한 쓰기 권한이 있는 MongoDB 사용자를 지정해야 합니다.
영구 스키마 로 mongosqld
를 실행 하는 데 필요한 권한이 있는 사용자를 만들려면 캐시된 샘플링에 대한 사용자 권한에 설명된 대로 필요한 최소 권한이 있는 사용자 지정 역할 을 만들거나 내장 readAnyDatabase 역할 사용할 수 있습니다. . 두 경우 모두 사용자는 지정된 스키마 데이터베이스 에 대한 쓰기 (write) 권한도 필요합니다.
db.getSiblingDB("admin").createUser( { user: "<username>", pwd: "<password>", roles: [ { "role": "readAnyDatabase", "db": "admin" }, { "role": "readWrite", "db": "<dbname>" } ] } )
다음 예제에서는 비밀번호가 myPass
인 bicUser
사용자가 schemaDb
스키마 데이터베이스에서 읽고 업데이트할 수 있는 자격 증명을 제공합니다.
mongosqld --auth -u bicUser -p myPass --schemaSource schemaDb --schemaMode auto