Mongo 进程的连接字符串有 /database 选项。这是什么意思?这是否意味着它对 mongo 服务器上的特定数据库进行身份验证。在此先感谢
问问题
16116 次
5 回答
5
使用 C# 驱动程序,您通常不会使用将数据库名称放在连接字符串上的选项。部分支持以提供与其他驱动程序的某种程度的兼容性。
MongoServer.Create 忽略数据库名称。连接字符串上的任何凭据(用户名/密码)都用作所有数据库的默认凭据。
数据库名称仅供 MongoDatabase.Create 使用,它调用 MongoServer.Create,然后只为您调用 GetDatabase。
所以:
var connectionString = "mongodb://localhost/database";
var database = MongoDatabase.Create(connectionString);
只是一个捷径:
var connectionString = "mongodb://localhost";
var server = MongoServer.Create(connectionString);
var database = server.GetDatabase("database");
在您第一次尝试使用数据库之前,实际上不会发生任何身份验证。
于 2012-04-16T15:36:31.397 回答
1
像这样:
var cliente = new MongoClient("mongodb://usuariocualquiera:tuclave@localhost:27017/BASEDEDATOS");
可以打电话
var collection = database.GetCollection<BsonDocument>("CUALQUIERCOLECCION");
于 2017-05-23T22:42:32.230 回答
0
它将连接到命名数据库。如果数据库不存在,它将建立连接,并在创建新对象时实例化数据库
于 2012-04-16T05:38:53.060 回答
0
您将使用在 admin 数据库中创建的用户 mongodb 和 localhost:27017 上的密码 mongodb 创建/返回 mongod 进程的现有实例。您不需要调用 Connect() - 驱动程序将根据需要自动执行此操作。
于 2012-04-16T10:28:54.860 回答
0
假设用户帐户是在 admin 数据库中创建的,并且假设您使用的是名为“mongo”的命令行界面 (CLI) 程序,您可以使用以下用户名和密码连接到 3 节点副本集:
句法:
mongo --host "<replicaset name>/<host 1 resolvable name>:<host 1 port>,<host 2 resolvable name>:<host 2 port>,<host 3 resolvable name>:<host 3 port>" --username <username> --password <password> --authenticationDatabase <database name>
例子:
mongo --host "replset1/ip-172-31-48-110.eu-west-1.compute.internal:27017,ip-172-31-116-186.eu-west-1.compute.internal:27017,ip-172-31-29-140.eu-west-1.compute.internal:27017" --username barry --password supersecretpassword --authenticationDatabase admin
于 2019-01-25T17:23:56.427 回答