使用连接字符串进行mongodb身份验证

70gysomp  于 2022-11-28  发布在  Go
关注(0)|答案(6)|浏览(180)

Mongo进程的连接字符串有/database选项。它是什么意思?它是否意味着它验证mongo服务器上的特定数据库。提前感谢

vuv7lop3

vuv7lop31#

使用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");

在您首次尝试使用数据库之前,实际上不会进行任何身份验证。

ddhy6vgd

ddhy6vgd2#

就像这样:

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

且可以被称为

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

kmynzznz3#

它将连接到指定的数据库。如果数据库不存在,它将建立连接,并在创建新对象时示例化数据库

zpf6vheq

zpf6vheq4#

您将使用在admin数据库中创建的用户mongodb和在localhost:27017上创建的密码mongodb创建/返回mongod进程的现有示例。您不需要调用Connect()-驱动程序将根据需要自动执行此操作。

7d7tgy0s

7d7tgy0s5#

假设用户帐户是在管理数据库中创建的,并且假设您正在使用名为“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
bmp9r5qi

bmp9r5qi6#

我在这里分享了我的经验,这对我来说很有用。所以基本上,字符串的组成如下:

"mongodb://[user]:[password]@[host]:[port]"

和一些例子:

"mongodb://yourusername:yourpassword@localhost:27017"

我已将文档here用作参考

相关问题