视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
mongodb管理SecurityandAuthentication
2020-11-09 16:08:16 责编:小采
文档


mongodb管理Security and Authentication mongdb自己也提供了验证机制,如果不验证是无法访问数据库对象,一个数据可以有多个用户,用户的权限也可以各不相同,下面具体介绍一下。 use admin ----登录到超级管理员 db.addUser(root, abcd); { _id : ObjectId

mongodb管理Security and Authentication

mongdb自己也提供了验证机制,如果不验证是无法访问数据库对象,一个数据可以有多个用户,用户的权限也可以各不相同,下面具体介绍一下。

> use admin ----登录到超级管理员

>db.addUser("root", "abcd");

{

"_id" : ObjectId("4eaf58af769d879418d93191"),

"user" : "root",

"readOnly" : false,

"pwd" : "1a0f1c3c3aa1d592f490a2addc559383"

}

创建了一个超级用户,这个用户可以访问任何数据库,权限最大

> use test

switched to db test 切换到test数据库

> db.addUser("test_user", "efgh");

{

"user" : "test_user",

"readOnly" : false,

"pwd" : "6076b96fc3fe6002c8102687026eec"

}

> db.addUser("read_only", "ijkl", true);

{

"user" : "read_only",

"readOnly" : true,

"pwd" : "f497e180c9dc0655292fee53c162f1"

}

以上创建两个用户,test_user和read_only,不同的是,read_only用户只有只读权限

> use test

switched to db test

> db.test.find();

error: { "$err" : "unauthorized for db [test] lock type: -1 " }

> db.auth("read_only", "ijkl");

1

> db.test.find();

{ "_id" : ObjectId("4bb007f53e8424663ea6848a"), "x" : 1 }

> db.test.insert({"x" : 2});

unauthorized

> db.auth("test_user", "efgh");

1

> db.test.insert({"x": 2});

> db.test.find();

{ "_id" : ObjectId("4bb007f53e8424663ea6848a"), "x" : 1 }

{ "_id" : ObjectId("4bb0088cbe17157d7b9cac07"), "x" : 2 }

以上例子可以看到没有验证用户登录,对数据库读写操作均不能,read_only用户只能查询,不能插入,但是test_user用户验证登录后就可以插入了。

如果这时,show dbs,还是报错,因为test_user 不是admin用户,所以没有权限。

> use admin

switched to db admin

> db.auth("root", "abcd");

1

> show dbs

admin

local

test

验证了超级用户就可以做相关操作

创建的这些用户都存在创建时数据库下面一个叫system.users的集合里面,如果要移除一个user,例如移除test_user

> db.auth("test_user", "efgh");

1

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

> db.auth("test_user", "efgh");

0

启用验证登录:如果是配置文件启动server端,里面可以加入auth = true ,如果是跟参数启动mongod 后面记得跟--auth。

下载本文
显示全文
专题