问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用mongodb设计用户权限表

发布网友 发布时间:2022-04-23 20:20

我来回答

1个回答

热心网友 时间:2022-04-08 00:11

例如:mysql安装配置好后,有一个自带的mysql数据库,里面有一张user表,用来存放用户,以及用户权限,而mongodb这个最像关系型的数据库,有没有这样的表呢。
一,掌握权限,理解下面4条基本上就差不多
1,mongodb是没有默认管理员账号,所以要先添加管理员账号,在开启权限认证。
2,切换到admin数据库,添加的账号才是管理员账号。
3,用户只能在用户所在数据库登录,包括管理员账号。
4,管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。这一点比较怪
二,添加管理员账号
[root@localhost zhangy]# mongo
MongoDB shell version: 2.4.6
connecting to: tank
> use admin //切换到admin数据库
switched to db admin
> show collections;
system.indexes
system.users //用户表
> db.system.users.find(); //用户表没有数据
> db.addUser('tank','test'); //添加一个管理员账号
{
"user" : "tank",
"readOnly" : false,
"pwd" : "988432606980d0695e4f668f6bbc643a",
"_id" : ObjectId("529e5d543b6a4608ac833429")
}

三,开启动用户权限认证
[root@localhost zhangy]# vim /etc/mongodb.conf //将auth=true前面的注释拿掉
[root@localhost zhangy]# /etc/init.d/mongod restart //重启生效

四,用户只能在用户所在数据库登录,管理员需要通过admin认证后才能管理其他数据库

[root@localhost zhangy]# mongo
MongoDB shell version: 2.4.6
connecting to: tank
> show dbs; //显示所有数据库失败,因为还没有认证
Wed Dec 4 06:39:50.925 listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" } at src/mongo/shell/mongo.js:46
> db.auth('tank','test'); //认证失败,因为这个用户不属于tank这个数据库
Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" }
0
> use admin //切换到admin数据库
switched to db admin
> db.auth('tank','test'); //在admin数据库认证成功
> use tank; //切换到tank数据库
switched to db tank
> show collections; //不会在提示没有权限了
contact
system.indexes
users

五,添加普通用启
> use tank;
switched to db tank
> db.addUser('tank1','test'); //为tank数据库添加了一个可读写用户tank1
{
"_id" : ObjectId("529e5f8474b4c660718a70f3"),
"user" : "tank1",
"readOnly" : false,
"pwd" : "35dd47abff098f5b4f0b567db8edeac5"
}
> db.addUser('tank2','test',true); //为tank数据库添加了一个只读用户tank2
{
"user" : "tank2",
"readOnly" : true,
"pwd" : "1792916c544d247538ded52e6df7b887",
"_id" : ObjectId("529e67553992b24438d5e315")
}
> exit //退出
bye
[root@localhost zhangy]# mongo
MongoDB shell version: 2.4.6
connecting to: tank
> db.auth('tank1','test'); //刚添加的用户可以登录。

六,php客户端连接
1, 推荐方法一
$mongo = new Mongo();

$db = $mongo->selectDB('tank'); //切换到tank数据库

$db->authenticate("tank3", "test"); //认证

$users= $db->selectCollection("users"); //选取users表

$cursor = $users->find(); //读取数据

foreach ($cursor as $id => $value) {
echo "$id: "; print_r($value); echo "<br>";
}

这种方式比较好理解,根命令行下的操作过程差不多。
2,推荐方法二
$mongo = new Mongo("mongodb://tank3:test@127.0.0.1:27017/tank"); //认证用户,这里的数据库,只启认证作用

$db = $mongo->selectDB('tank'); //选取数据库

$users= $db->selectCollection("users");

$cursor = $users->find();

foreach ($cursor as $id => $value) {
echo "$id: "; print_r($value); echo "<br>";
}

上面二种方法的不同在于,一个先选数据库在认证,一个先认证在选数据库。
如何用mongodb设计用户权限表

&gt; db.auth('tank1','test'); //刚添加的用户可以登录。六,php客户端连接 1, 推荐方法一 mongo = new Mongo();db = $mongo-&gt;selectDB('tank'); //切换到tank数据库 db-&gt;authenticate("tank3", "test"); //认证 users= $db-&gt;selectCollection("users"); //选取users表 cursor ...

如何给mongodb管理员权限

mongodb.properties中指定管理员账号及对应的数据库名。在spring-data-mongodb 1.7版本后需要在mongo-client 中设置 credentials属性来指定管理员信息,credentials的配置形式是:“用户名:密码@默认数据库”,如:credentials="${mongo.user}:${mongo.pwd}@${mongo.defaultDbName}"...

MongoDB 如何存储多级嵌套数据及操作增删改查❓

使用 $set 操作符更新指定权限对象的 name 和 code 属性。

MongoDB添加用户认证

安装版本: db version v4.2.6 MongoDB默认安装并没有开启用户名密码登录,这样太不安全。首先开启一个无需验证用户的MongoDB服务后,进入MongoDB的shell控制台创建用户:创建用户后,关闭连接,进入正题: 安装路径: D:PROGRA~1\MongoDB\Server\4.2\bin\ 配置文件中添加 authorization 项...

查询所有角色及其多级权限的编程思路?

数据模型设计:首先,你需要一个数据库表来存储角色和权限的信息。通常,这些信息可以表示为一个角色表和权限表,并通过外键进行关联。例如,你可以有一个名为roles的表,包含字段如id(角色ID)、name(角色名称)和parent_id(父级角色ID);另一个名为permissions的表,包含字段如id(权限ID)、name...

php多权限设计思想包括数据库设计

1 用户collection username acl //权限(此字段为数组)is_active //状态 是否激活 _id acl = array( “A模块” =&gt; array('查看','添加','修改'),“B模块” =&gt; array('查看','添加'),“C模块” =&gt; array('查看','添加','修改',’删除‘))但愿你会mongodb ,否则你可能 看...

如何在window下使用mongodb

--directoryperdb 表示每个db一个目录;4、完成以上设置,MongoDB已经启动,新开启DOS窗口,执行“mongo.exe”,出现“MongoDB shell version: 1.8.1”表示安装成功了。5、目前是以无权限限制的方式启动的,你可以做任何操作。那么我们先切换到admin下,创建一个root用户吧。执行命令:"use admin" -&gt;...

MongoDB 是什么?看完你就知道了

1.MongoDB是什么?用一句话总结 MongoDB是一款为web应用程序和互联网基础设施设计的数据库管理系统。没错MongoDB就是数据库,是NoSQL类型的数据库。 (1)MongoDB提出的是文档、集合的概念,使用BSON(类JSON)作为其数据模型结构,其结构是面向对象的而不是二维表,存储一个用户在MongoDB中是这样子的。 使用这样的数据...

ubuntu mongodb服务启动报错:start-stop-daemon: unable to set gid...

1. MongoDB默认使用mongodb用户和组启动,ID分别为999和120。所以,需要确保/data/db目录和其下文件属于mongodb用户和组,并赋予其读写执行权限。命令:bash sudo chown -R mongodb:mongodb /data/db sudo chmod -R 770 /data/db 2. 同样需要确保/var/run/mongodb目录也属于mongodb用户和组,并赋予...

最好用的 6 款 MongoDB GUI 管理工具横向测评 - 免费和付费到底怎么选...

Kala云:低代码开发工具,可根据需求快速搭建定制化GUI,方便易用。NoSQLBooster:免费且跨平台,侧重于监控和查询工具,适合对监控有需求的用户。HumongouS.io:在线协作版,适合团队使用,提供便捷的权限管理功能,但为付费产品。Navicat for MongoDB:企业级全功能工具,付费版,界面统一且支持多种云服务,...

用户角色权限用户组七表 用户角色权限表设计 oracle授权表权限给用户 db2查看用户对表的权限 plsql授权用户表权限 查看mysql用户表的权限 oracle维护其他用户表的权限 oracle查用户对表有哪些权限 oracle给用户创建表的权限
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如果要去西藏旅游该注意哪些事项? 配一台三千左右的电脑 平时就是玩穿越火线和魔兽 最好FPS能高点 可以... 帮忙看看我的电脑的内存读入测试!什么意思?说明什么? 我家的花,三角梅,就是盘起来的那种,往上盘的主干尖折了,还能长吗?? 上海哪里学琵琶好? 请问在上海杨浦区地铁8号线附近的琴行有没有啊,我想学钢琴,谢谢大家了... 上海杨浦区有哪些地方学乐器和高一课程比较好 上海瀚音琴行怎么样? ipad和手机相册怎么取消同步 现在买郑州到厦门的火车票好买吗? mongodb中的用户,角色,权限该怎么设计 window下怎么给mongdb设置权限 描写委屈的句子 1992年属猴4月是什么命? 表示很委屈的句子 如何给mongodb数据库设置访问权限 心里受了委屈的心情短语 1992年属猴的适合多少岁结婚最好? 心里委屈压抑憋屈说说 关于委屈的句子 委屈的句子 92年属猴的,和哪年的最配 形容自己很委屈的句子说说心情 2岁宝宝留什么发型图片 1992年属什么猴 2岁男宝宝剪什么发型比较好看的啊?知道的朋友告诉我下吧,谢谢。 2岁小孩短发梳好看的发型 小孩子短发怎样 委屈句子 心情短语 两岁小男孩儿适合什么发型 比较委屈的句子 mongodb怎么开启用户权限 mongodb 设置权限后 怎么导入数据 mongodb3.0没有admin数据库了,怎么添加超级管理员 mongodb 查看账号有哪些权限 怎么处理mongodb未授权访问 mongodb 一个用户拥有多个库的权限 mongodb登录成功怎么还是没权限 mongodb 集合的访问权限 MongoDB 加了权限验证,远程连接不上是什么原因 怎么在mongodb创建最小权限的备份账户 mongodb 怎么设置用户名密码 mongodb 什么权限能看到+db.system.user 数字电视的LAN插孔作用是什么 为什么我的siri不能连续对话? 用Siri发信息怎么要在App中继续进行 siri怎么打开闲聊模式? iPhone 7 plus怎么在siri上聊天? iphonex siri自动说话? iphone的Siri怎么玩好玩 两个iphone的siri怎么对话