mongodb authentication with connection string

2019-01-25 21:33发布

问题:

The connection string for Mongo process has /database option . What does it mean? Does it mean it authenticates the particular database on mongo server.Thanks in advance

回答1:

With the C# driver you typically would not use the option of putting a database name on the connection string. It is partially supported to provide some level of compatibility with other drivers.

MongoServer.Create ignores the database name. Any credentials (username/password) on the connection string are used as default credentials for all databases.

The database name is only used by MongoDatabase.Create, which calls MongoServer.Create and then just calls GetDatabase for you.

So:

var connectionString = "mongodb://localhost/database";
var database = MongoDatabase.Create(connectionString);

is just a shortcut for:

var connectionString = "mongodb://localhost";
var server = MongoServer.Create(connectionString);
var database = server.GetDatabase("database");

No authentication actually happens until you first try to use a database.



回答2:

Like this:

var cliente = new MongoClient("mongodb://usuariocualquiera:tuclave@localhost:27017/BASEDEDATOS");

and could be call

var collection = database.GetCollection<BsonDocument>("CUALQUIERCOLECCION");


回答3:

It will connect to the named database. If the database is not present it will make a connection and upon creating a new object it will instantiate the database



回答4:

You will create/return existing instance of the mongod process with user mongodb created in the admin database and password mongodb on localhost:27017. You shouldn't need to call Connect() - the driver will do this automatically as required.



标签: c# mongodb