首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP Mongodb驱动程序在使用身份验证在Mongo 2.4.0上运行MongoDB->execute()时出现“未授权”错误

PHP Mongodb驱动程序在使用身份验证在Mongo 2.4.0上运行MongoDB->execute()时出现“未授权”错误
EN

Stack Overflow用户
提问于 2013-03-29 07:49:34
回答 2查看 1.4K关注 0票数 1

我在使用以下代码时遇到了问题:

代码语言:javascript
复制
$m = new MongoClient('mongodb://sf:xxxxxx@localhost/sf');
$collections = $m->selectDB("sf")->getCollectionNames();
var_dump($collections); // prints collection names as expected

$collections = $m->selectDB("sf")->execute('function (){ return db.getCollectionNames(); }');
var_dump($collections); // gives error "unauthorized"

此内容已在以下位置转载:

Mongo 2.4.0,MongoDB PHP驱动程序1.3.6,PHP版本5.3.8,Windows7 32位

MongoDB 2.4.0,PHP驱动1.3.5,PHP版本5.3.2,ubuntu10.04.4

有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-29 07:54:02

PHP的execute只是一个用来调用eval的包装器,它需要管理员权限才能使用。

从文档中:

代码语言:javascript
复制
With authentication enabled, eval will fail during the operation
if you do not have the permission to perform a specified task.
Changed in version 2.4: You must have full admin access to run.
票数 0
EN

Stack Overflow用户

发布于 2013-09-23 08:50:10

检查MongoDB的连接字符串。如果它包含数据库,请尝试删除它。例如:

mongodb://sf:pass@localhost/sf

mongodb://sf:pass@localhost/

完成此操作后,请在使用身份验证实例化客户端后选择数据库。我相信这应该可以让你使用这个函数。我相信这会导致对admin集合而不是指定的集合进行身份验证,这可能会提供对此函数的访问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15694165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档