权限管理不能设置为每次打开软件都要询问询问吗

MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下:
注:研究成果基于Windows平台
MongoDB在本机安装部署好后
1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local。local好像没啥用,如果哪位在使用过程中发现了这个local表的用途,希望能够留言提醒,那我们就专心来说说admin表
2. 输入命令:use admin,你会发现该DB下包含了一个system.user表,呵呵,没错,这个表就等同于MsSql中的用户表,用来存放超级管理员的,那我们就往它里面添加一个超级管理员试试看
3. 输入命令:db.addUser('sa','sa'),这里我添加一个超级管理员用户,username为sa,password也为sa,即然我们添加了超级管理员,那咱们就来测试下,看看咱们再次连接MongoDB需不需要提示输入用户名、密码,我们先退出来(ctrl+c)
4. 输入命令:use admin
5. 输入命令:show collections,查看该库下所有的表,你会发现,MongoDB并没有提示你输入用户名、密码,那就奇怪了,这是怎么回事呢?在文章最开始提到了,
MongoDB默认设置为无权限访问限制,即然这样,那我们就先把它设置成为需要权限访问限制,咱们再看看效果,怎么设置呢?
6. 在注册表中,找到MongoDB的节点,在它的ImgPath中,我们修改一下,加入 -auth,如下所示:
"D:\Program Files\mongodb\bin\mongod" -dbpath& e:\work\data\mongodb\db& -logpath& e:\work\data\mongodb\log -auth -service
7. 输入命令:use admin
8. 输入命令:show collections,呵呵,我们发现无法查看该库下的表了,提示:"$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1",很明显,提示没有权限,看来关键就在于这里,我们在启动MongoDB时,需要加上-auth参数,这样我们设置的权限才能生效,好,接下来我们使用刚刚之前设置的用户名、密码来访问
9. 输入命令:db.auth('sa','sa'),输出一个结果值为1,说明这个用户匹配上了,如果用户名、密码不对,会输入0
10. 输入命令:show collections,呵呵,结果出来了,到这里,权限设置还只讲到一多半,接着往下讲,我们先退出来(ctrl+c)
11. 输入命令:mongo TestDB,我们尝试连接一个新的库(无论这个库是否存在,如果不存在,往该库中添加数据,会默认创建该库),然后,我们想看看该库中的表
12. 输入命令:show collections,好家伙,没权限,我们输入上面创建的用户名、密码
13. 输入命令:db.auth('sa','sa'),输入结果0,用户不存在,这下有人可能就不明白了,刚刚前面才创建,怎么会不存在呢?原因在于:当我们单独访问MongoDB的数据库时,需要权限访问的情况下,用户名密码并非超级管理员,而是该库的system.user表中的用户,注意,我这里说的是单独访问的情况,什么是不单独访问的情况呢?接下来再讲,现在咋办,没权限,那我们就尝试给库的system.user表中添加用户
14. 输入命令:db.addUser('test','111111'),哇靠,仍然提示没有权限,这可咋办,新的数据库使用超级管理员也无法访问,创建用户也没有权限,呵呵,别急,即然设定了超级管理员用户,那它就一定有权限访问所有的库
15. 输入命令:use admin
16. 输入命令:db.auth('sa','sa')
17. 输入命令:use TestDB
18. 输入命令:show collections,哈哈,一路畅通无阻,我们发现可以利用超级管理员用户访问其它库了,呵呵,这个就是不单独访问的情况,不难发现,我们是先进入admin库,再转到其它库来的,admin相当于是一个最高级别官员所在区域,如果你是个地产商,想在地方弄个大工程做做,你想不经过那些高级官员就做,这是行不通的,你需要先去到他们那里,送点礼,再顺着下到地方,工程你就可以拿到手了,此言论仅为个人观点,不代表博客园;即然工程拿到手了,就要开始建了,那我们不至于每加块砖、添个瓦都得去和那帮高级官员打招呼吧,所以我们得让这个工程合法化,咱们得把相关的手续和证件弄齐全,不至于是违建
19. 输入命令:db.addUser('test','111111'),我们给TestDB库添加一个用户,以后每次访问该库,我都使用刚刚创建的这个用户,我们先退出(ctrl+c)
20. 输入命令:mongo TestDB
21. 输入命令:show collections,提示没有权限
22. 输入命令:db.auth('test','111111'),输出结果1,用户存在,验证成功
23. 输入命令:show collections,没再提示我没有权限,恭喜您,成功了
好累啊!一口气写完,呵呵
注:当需要使用权限才能访问MongoDB时,如果需要查看MongoDB中所有的库,我们只能通过超级管理员权限,输入命令show dbs来查看了。
阅读(...) 评论()Quick access
NTFS文件访问控制权限防删除权限设置问题
文件共享虽然通过在安全设置里把“删除文件夹/文件”和“删除”权限剔除,可以防止文件被用户恶意/无意删除。
但是不管用户有意还是无意,只要写入权限,把文件内容一清空,保存,什么数据都没了。
所以为了防止数据丢失,根据NTFS权限设置,应该除了不给”删除“权限之外,”写入“权限的子权限”创建文件夹/附加数据”的权限也不能给。
这样一来,文件放入共享里后就万无一失了,任何进一步的修改都不能生效。
那么,假设:文件共享里有个文件,是一个类似于样本的文件(做好了格式),第一个用户只需要在这固定的格式上写入数据另存成自己的文件,然后交由下一个用户继续这个编辑过的文件写入其他的数据再另存成另外一个文件,类似于生产中流水线的操作一般。由于每个用户生成了自己的文件后将不能再次修改(或者被别人恶意修改),那么下一个用户从上一个用户接到的文件肯定是没被修改过的,如果中间环节出现了错误,就可以追溯到具体那个用户身上出了问题,避免前一个用户说是下一个用户修改了他的数据或者下一个用户说是上一个用户的错导致的互相扯皮不认账的问题。
理论上,只给”写入“的子权限”创建文件/写入数据“即可。但在实际测试中,其他文件保存机制如何暂时不说,至少Office文件,这类文件在保存和另存时,都会在同一目录下创建临时的tmp文件来进行数据交换合并来达到保存文件的目的,由于权限设置,创建了tmp临时文件,可是又不能往里面附加数据,然后要另存的文件创建了也无法附加数据。导致文件无法正常被另存,而产生了1个Office文件和1个tmp文件,都是0字节的空文件。
所以折衷的方法就是,把共享中的文件复制到本地来编辑另存后,再放进文件共享里。
但用户端却不愿意这么做了,这一来一去,多麻烦。
在测试中,有个软件就工作得很正常,直接在文件共享上编辑源文件,然后直接另存在同一目录下(在另存时没产生tmp文件)。
最后得出结论:如果在另存时需要创建临时tmp文件做数据交换合并的,都不能正常另存。
既然有个软件能正常工作,
要么是该软件早就意识到了这个权限问题(可是该软件的另一个模块却也会在文件共享目录里创建临时文件,所以这个说不通?)
要么就是,应该可以避免这些临时tmp文件在文件共享目录下创建,而是通过本地合并数据另存后再放到文件共享里。
那么,谁能解答下这个问题呢?
问题就是,在文件夹只给“创建文件/写入数据“,不给”创建文件夹/附加数据“,不给”修改“,不给”删除&权限情况下,直接编辑文件共享里的文件并能正常另存在同一目录下?
您好!&&&&&&&&&&&&&&&&&&&&&&&&&
非常抱歉,根据我的研究,由于系统设计的原因,我们难以实现对于文件夹您希望的操作。
希望我的回答对您有所帮助,如果您还有什么问题,请您再和我们联系。如果您对我们的论坛在线支持服务有任何的意见或建议,请通过告诉我们。
立刻免费下载&
Marked as answer by
目前微软的文件服务器还没能做到这详细的控制。只能把人员的权限尽量控制到最小,你也可以结合RMS做进一步的控管,最好呢,还是多做数据备份,免得数据丢失找不回来,
如果没有备份设备的话,起码把微软就自带的 卷影 功能给开开吧
Marked as answer by
All replies
您好!&&&&&&&&&&&&&&&&&&&&&&&&&
非常抱歉,根据我的研究,由于系统设计的原因,我们难以实现对于文件夹您希望的操作。
希望我的回答对您有所帮助,如果您还有什么问题,请您再和我们联系。如果您对我们的论坛在线支持服务有任何的意见或建议,请通过告诉我们。
立刻免费下载&
Marked as answer by
您好!&&&&&&&&&&&&&&&&&&&&&&&&&
非常抱歉,根据我的研究,由于系统设计的原因,我们难以实现对于文件夹您希望的操作。
希望我的回答对您有所帮助,如果您还有什么问题,请您再和我们联系。
如果您对我们的论坛在线支持服务有任何的意见或建议,请通过告诉我们。
立刻免费下载&
感谢回答,那请问,微软的文件服务器如何防止文件被恶意删除和恶意清空、覆盖数据?
目前微软的文件服务器还没能做到这详细的控制。只能把人员的权限尽量控制到最小,你也可以结合RMS做进一步的控管,最好呢,还是多做数据备份,免得数据丢失找不回来,
如果没有备份设备的话,起码把微软就自带的 卷影 功能给开开吧
Marked as answer by在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
有没有哪位大哥做过后台权限管理这个模块的?能否给我说下你的设计思路?有文档给我看看也行(我也在网上找了资料,才来提问的,不要让我自行百度好吗?心塞...)
我是这么想的,有三张表,管理员表、管理组表、规则表
管理员表(members)
管理所对应的管理组ID
规则表(rules)
控制器名/方法名
管理组(group)
组权限(包含这一组所有的规则ID)
如上面代码里的,我觉得三张表就可以应付了,为什么我看到网上有6、7张表,之多,中间有关联表或映射表什么的东西,我想知道,这么多表具体有什么作用呢?实际操作起来(操作数据库)还很复杂,如果是必须,具体作用是什么?求解答疑惑
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
常见的设计方式RBAC:设计思路:通过对当前访问URI进行权限鉴定数据结构:
表1:权限表,用于存放所有的访问URI
表2:权限组表,存权限组拥有访问权限的URI的id
表2:权限组,权限组对应有哪些用户
大致就是这么个思路
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
在你的基础上补充一下,你后台应该有一张后台菜单目录表,表里面记录了具体菜单名称对应的控制器方法名信息,权限规则表里把存控制器信息字段可以改成存菜单ID,多个可以逗号隔开。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
一张用户表(必须字段gourpid 记录该属于用户组id),
一张用户组表(必须字段node,用来记录菜单表id,用逗号隔开记录),一张后台菜单表(用来记录菜单的url,也用于后台菜单遍历出菜单)。
用户登陆时,查询该用户属于哪个用户组,取出用户组的node,然后用node查出菜单遍历出菜单,也可以做相应的权限
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可以看一下 YII2 的权限设计,每个用户可以对应多个角色,不同角色可以设置不同的权限:
或者参考一下discuz的权限设置
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。【新提醒】360手机助手无法读取联系人,短信的解决办法 
我的图书馆
【新提醒】360手机助手无法读取联系人,短信的解决办法 
如果手机与360手机助手连接正常,但仍无法读取您的联系人短信等信息,请查看是否有权限管理软件屏蔽了360手机助手的权限,请按以下步骤操作:
权限设置:
如短信联系人权限未开启,将无法成功接收、发送、备份、还原联系人以及短信。此权限是仅为联系人、短信的管理与备份,不涉及其他权限问题。miui、魅族系列手机、及LBE安全大师等软件设置权限的方法如下:
1、miui在使用手机助手,联系人、短信及备份恢复功能时,您的手机会接收到如下通知,请勾选【下次不再询问】,并点击【允许】
2、此权限也可以根据如下提示进行设置:选择【系统与安全】---【授权管理】---【软件权限管理】---【短信记录】---点击【允许】
魅族手机:
<font color="#、魅族手机在使用手机助手,联系人、短信及备份恢复功能时,您的手机会接收到如下通知,请点击【允许】;
<font color="#、此权限也可以根据如下提示进行设置:选择【设置】---【应用程序】---【信任程序】---【将<font color="#0手机助手设置为信任程序】
LBE安全大师软件:
1、装有LBE隐私卫士软件的手机在使用手机助手,联系人、短信及备份恢复功能时,您的手机会接收到如下通知,请勾选“记住我的选择”,并点击“允许”
2、请在软件中根据如下提示进行设置:选择【软件管理】---选择【软件权限管理】
选择【短信记录】---将360手机助手设置为【允许】
选择【联系人记录】---将360手机助手设置为【允许】
(54.28 KB, 下载次数: 71)
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢查看:14175|回复:9
我把某文件夹user账号的访问权限拒绝了,但是连管理员也不能访问了?换了几台机测试也是这样,究竟怎么设置呢?
(49.68 KB)
(37.83 KB)
(87.51 KB)
“所有者”里,设置为administrator,把权限夺过来!
我的微博:http://t.sina.com.cn/lzy821218
所有者里面已经显示是Administrator,但我还是再次选了Administrator试试,结果行了,奇怪,难道要选择激活一下???而且这样操作之后权限里只剩下Administrator了
再重新添加其他用户的权限!
我的微博:http://t.sina.com.cn/lzy821218
初级工程师
难道你的admin帐号隶属于users里面??
检查下admin的属性,如果既是administrators又是users的话肯定以拒绝权限为最大的
这个文件夹是你自己建立的还是别人建的 ?
如果是别人建的,有可能是在cmd里面用命令建的一个保密文件夹。双击是打不开的,想打开也是要用命令打开。。
全国政协主席
引用:原帖由 jimsbang 于
09:15 发表
我把某文件夹user账号的访问权限拒绝了,但是连管理员也不能访问了?换了几台机测试也是这样,究竟怎么设置呢?
然后将这俩个勾勾选上
使命的召唤-全能IT艺术家 ...
先用管理员创建文件夹,然后删除所有者,阻止权限继承,给管理员设置控制权限,添加受限用户权限。估计是你操作的问题
一剑舞动惊四方,IT本是我所长 (R)丁胖胖
将administrator从USER用户组删除,系统的安全权限拒绝优先于允许

我要回帖

更多关于 android 询问权限 的文章

 

随机推荐