MongoDB用户及权限管理(二):用户管理

一、创建管理员账号

  1. 下面开始创建一个帐号,该账号需要有grant权限,即:账号管理的授权权限。注意一点,帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。

> use admin

switched to db admin

> db.createUser(

{

user:  "dba",

pwd:  "dba",

roles:  [ { role: "userAdminAnyDatabase", db: "admin" } ]

}

)

2.编辑mongodb配置文件,开启验证模块


security:

authorization: enabled

3.重启mongod.

4.再次登录mongodb


#mongo

> show dbs

2017-01-10T19:30:30.924+0800 E QUERY    [main] Error: listDatabases failed:{

"ok" : 0,

"errmsg" : "not authorized on admin to execute command  { listDatabases: 1.0 }",

"code" : 13,

"codeName" : "Unauthorized"

}

5.会报出如上错误,这是因为开启auth模块后,需要进行验证。如果需要使用刚才创建的管理员账户,则需要到admin库下进行验证,1表示验证成功。


>use admin

>db.auth(‘dba‘,‘dba‘)

1

6.验证成功,再次执行命令:


> show dbs

admin  0.000GB

local  0.000GB

即可执行成功。

二、创建普通用户账号

userAdminAnyDatabase的角色具有在任何数据库下创建用户的权限,下面用刚刚创建的dba用户创建普通用户。

1.创建只读账号


use db1

db.createUser(

{

user:  "test1",

pwd:  "test1",

roles: [ { role: "read", db: "db1" } ]

}

)

2.创建读写账号


use db1

db.createUser(

{

user:  "test2",

pwd:  "test2",

roles: [ { role: "readWrite", db: "db1" } ]

}

)

注意:只有在当前库下创建的用户才能在当前库下进行验证,如果在admin库下创建的其他库的用户则需要在admin下进行验证。

三、创建超级管理员用户

MongoDB在V3.0版本之后内置了root 角色,也就是结合了readWriteAnyDatabase、dbAdminAnyDatabase、userAdminAnyDatabase、clusterAdmin4个角色权限,类似于ORACLE的sysdba角色,但是MongoDB的超级管理员用户名称是可以随便定义的。当然如此高权限的用户还是不建议使用。


db.createUser(

{

user:  "dbroot",

pwd:  "dbroot",

roles: [ { role: "root", db: "admin" } ]

}

)

四、查看用户信息

db.getUser("test1")


> db.getUser("test1")

{

"_id" : "admin.test1",

"user" : "test1",

"db" : "admin",

"roles" : [

{

"role" :  "clusterAdmin",

"db" :  "admin"

}

]

}

五、修改用户信息

可修改用户的如下信息:

角色、密码、customData


db.updateUser( "test1",

{

customData:{employeeID:"0x3039"},

roles:[

{role:"read",db:"admin"}

],

pwd:"test1password"

}

)

六、修改用户密码

db.changeUserPassword("user","password")

七、删除用户

db.system.users.remove({user:"user1"});

db.dropUser("test1")

八、授权给用户

原有权限不变的情况下,授予readWrite,read admin的权限:


db.grantRolesToUser(

"test1",

[  "readWrite",

{  role: "read", db: "admin" }

]

)

九、回收权限

回收test1用户的readWrite和read admin的权限。


db.revokeRolesFromUser(

"test1",

[ {  role: "read", db: "admin" },

"readWrite"

]

)

时间: 2024-10-10 02:33:09

MongoDB用户及权限管理(二):用户管理的相关文章

JavaEE学习之Spring Security3.x——模拟数据库实现用户,权限,资源的管理

一.引言 因项目需要最近研究了下Spring Security3.x,并模拟数据库实现用户,权限,资源的管理. 二.准备 1.了解一些Spring MVC相关知识: 2.了解一些AOP相关知识: 3.了解Spring: 4.了解Maven,并安装. 三.实现步骤 本示例中使用的版本是Spring Security3.2.2.通过数据库实现Spring Security认证授权大致需要以下几个步骤: 1.新建maven web project(因为本示例使用的是maven来构建的),项目结构如下,

Ubuntu下的用户和权限(二)

五.chown.chgrp命令 从名字就可以推测他们是干嘛的,但是这两个命令需要root权限. chown命令的格式为:chown user:group file  中间的user : group三项可以根据需要省略某部分.比如现在有个文件file属于用户bob,bob的权限是rwx,而bob属于组group1,group1的权限是r.有另外一个用户jack属于group2. chown jack file 这就把file的woner从bob改成了jack,但是file所属的群组仍然是group

金蝶K3,域环境中,无本地用户管理员权限的域用户如何设置注册表权限?

如果该用户是属于Power Users组:只需要给用户添加注册表中的HKEY_LOCAL_MACHINE的SOFTWARE完全控制的权限.(勾选允许父项的继承权限和传播到该对象和所有子对象) 如果该用户是属于Users组:除了需要给用户添加注册表中的HKEY_LOCAL_MACHINE的SOFTWARE完全控制的权限以外,还需要给用户添加注册表中HKEY_CLASSES_ROOTD的APPID以及KdSvrmgr.clsAct完全控制的权限. 金蝶K3,域环境中,无本地用户管理员权限的域用户如何

MSSQL2008R2数据库附加上后新建用户设置权限提示错误“用户、组或角色

我们在进行MSSQL数据库迁移时候常常会用到附加数据库方式快速还原数据库内容.简单又快捷的.但是当我要设立用户来对数据库进行管理时候会发现.有这样一个提示错误:这里我们来找找问题在哪里!首先我们可以查看我们附加上的服务器的数据库的配置,我们查看他的属性.我们在属性中查看权限这个时候会发现这里有个用户但是当我们在数据库安全性中的登录名中查看用户的时候会发现并没有存在这个用户. 这里可能会用到一个名词叫'孤立用户'.这里解释下这个名词:孤立帐户,就是某个数据库的帐户只有用户名而没有登录名,这样的用户

MongoDB设置访问权限、设置用户

mongo                          # 运行客户端(也可以去mongodb安装目录下运行这个)use admin                      # 切换到系统帐户表db.system.users.find()         # 查看当前帐户(密码有加密过)db.system.users.remove({})     # 删除所有帐户db.addUser('admin','password') # 添加新帐户 MongoDB已经使用很长一段时间了,基于Mon

MongoDB设置访问权限、设置用户(转)

MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下: 注:研究成果基于Windows平台 MongoDB在本机安装部署好后 1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local.local好像没啥用,如果哪位在使用过程中发现了这个local表的用途,希望能够留言提醒,那我们就专心来说说admin表 2. 输入命令:use

MongoDB设置访问权限、设置用户、在Java中用户名密码访问

以下操作基于Windows平台 1.启动MongoDB服务 mongod.exe --dbpath d:\mongodb-win32-x86_64-2.2.2\data --logpath d:\mongodb-win32-x86_64-2.2.2\log\mongo.log --auth [--auth]:代表需要根据权限访问,必须加此参数启动服务,客户端才能以用户名密码方式建立连接 2.启动Mongo控制台 mongo D:\mongodb-win32-x86_64-2.2.2\bin>mo

Linux运维六:用户管理及用户权限设置

Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也可以帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和各自的口令.用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录. 实现用户账号的管理,要完成的工作主要有如下几个方面: · 用户账号的添加.删除与修改. ·

MySQL用户和权限管理

MySQL用户权限表 MySQL的认证是“用户”加“主机”而权限是访问资源对象,MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库中,由mysql_install_db脚本初始化.存储账户权限信息表主要有:user,db,tables_priv,columns_priv,procs_priv这五张表(5.6之前还有host表,现在已经把host内容整合进user表),五张表其含义分别是: user表 user表时MySQL中最重要的一个权限表,记录允许连接到服务器的