问答文章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 ...

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

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

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

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

如何给mongodb管理员权限

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

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

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

MongoDB添加用户认证

这个一般是注册服务的命令有引号错误或者路径错误,检查有没有少斜线。正常的注册完服务并启动时,会显示服务已开启。新开窗口进入mongodb的shell控制台验证:参考链接: Mongodb学习(4)通过配置文件启动mongod windows系统,MongoDB开启用户验证 解决“Error parsing YAML 权限认证已ok ...

记录第一次vue-nodejs-mongodb项目服务器部署

/var/log/mongodb(thelogdirectory) 我们这里就使用它默认的一个位置来存放mongodb的data和log。 5启动MongoDB服务systemctlstartmongod.service 我这里启动报错,后来我看到了这篇文章,(看高赞回答),我发现权限错误,我的/tmp/mongodb-27017.lock所有者是root,需要改为mongod。 permissionsettingson/var/lib/mongo...

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

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

Node.js——MongoDB数据库

在Node如何操作MongDB数据库:1.使用官方mongodb包来操作。2.使用第三方mongoose来操作。使用第三方mongoose操作:安装包:npm?i?mongoose mongoose的相关使用://?导入mongooseconst?mongoose?=?require('mongoose');//?连接数据库mongoose.connect('mongodb://localhost:27017/itcast');//?设计文档表结构...

mongodb按需物化视图有什么优点和缺点?

访问控制方面,创建视图需数据库具有createCollection权限的用户,并且该用户在视图上执行find操作时还需额外权限。视图定义是公开的,避免直接引用敏感信息。创建和管理视图可通过db.createCollection()或db.createView()操作实现。集合信息列表操作,如db.getCollectionInfo()和db.getCollectionNames(),包含...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
2022容易放款的银行小贷有哪些?正规小额贷款机构有哪些?分享五个银行... p40pro屏幕怎么判断是哪个供应商 调序治疗仪调序治疗仪功效范围 淘宝买到假货怎么投诉获得赔偿?东西有质量问题怎么解决? windows7系统,安装了个MAXDOS,重启之后直接进入MAXDOS,我怎样才可以... xp系统装上矮人dos工具箱或者maxdos重新启动进入dos命令符下可不可以... ...运行的操作系统”一个是MaxDos7.1另一个就是windows xp 可滋泉活泉卸妆水功能特点 徐子淇的阔太脸穿啥都高级,细吊带红裙配长卷发,又美出圈了,你爱了... 保险公司的底薪有多少钱 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怎么对话
  • 焦点

最新推荐

猜你喜欢

热门推荐