今天使用mongoexport工具导出数据,遇到权限不足报错:
[host]$mongoexport -h 10.31.11.190:23820 -udbmgr -pMgr2mgdb -d rcmp -c policydata --limit 20000 -o policydata.dat
2017-04-25T11:02:06.599+0800 Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed.
查询用户权限,是有root权限的
mongos> use admin
switched to db admin
mongos> db.system.users.find({user:"dbmgr"})
{ "_id" : "admin.dbmgr", "user" : "dbmgr", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "bVTTgVm0VVByspn7nANRzA==", "storedKey" : "kLS7xO2cJFwSx3qrf4Hz/fNeZaI=", "serverKey" : "QRhOc5+/BmVlPu/58q+MJlNLXmI=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
查询工具的各个参数
mongoexport --help
Usage:
mongoexport <options>
Export data from MongoDB in CSV or JSON format.
See http://docs.mongodb.org/manual/reference/program/mongoexport/ for more information.
general options:
--help print usage
--version print the tool version and exit
verbosity options:
-v, --verbose more detailed log output (include multiple times for
more verbosity, e.g. -vvvvv)
--quiet hide all log output
connection options:
-h, --host= mongodb host to connect to (setname/host1,host2 for
replica sets)
--port= server port (can also use --host hostname:port)
ssl options:
--ssl connect to a mongod or mongos that has ssl enabled
--sslCAFile= the .pem file containing the root certificate chain from
the certificate authority
--sslPEMKeyFile= the .pem file containing the certificate and key
--sslPEMKeyPassword= the password to decrypt the sslPEMKeyFile, if necessary
--sslCRLFile= the .pem file containing the certificate revocation list
--sslAllowInvalidCertificates bypass the validation for server certificates
--sslAllowInvalidHostnames bypass the validation for server name
--sslFIPSMode use FIPS mode of the installed openssl library
authentication options:
-u, --username= username for authentication
-p, --password= password for authentication
--authenticationDatabase= database that holds the user's credentials
--authenticationMechanism= authentication mechanism to use
namespace options:
-d, --db= database to use
-c, --collection= collection to use
output options:
-f, --fields= comma separated list of field names (required for
exporting CSV) e.g. -f "name,age"
--fieldFile= file with field names - 1 per line
--type= the output format, either json or csv (defaults to
'json')
-o, --out= output file; if not specified, stdout is used
--jsonArray output to a JSON array rather than one object per line
--pretty output JSON formatted to be human-readable
querying options:
-q, --query= query filter, as a JSON string, e.g., '{x:{$gt:1}}'
-k, --slaveOk allow secondary reads if available (default true)
--forceTableScan force a table scan (do not use $snapshot)
--skip= number of documents to skip
--limit= limit the number of documents to export
--sort= sort order, as a JSON string, e.g. '{x:1}'
添加--authenticationDatabase=admin ,导出成功
[host]$mongoexport -h 10.31.11.190:23820 -udbmgr -pMgr2mgdb --authenticationDatabase=admin -d rcmp -c policydata --limit 20000 -o policydata.dat
2017-04-25T11:09:57.318+0800 connected to: 10.31.11.190:23820
2017-04-25T11:10:05.301+0800 exported 20000 records
[host]$ls
policydata.dat