2 mongodb设置密码登录和创建库

萌亖 2020-05-12

一 创建用户

首先登录,mongo,登录成功之后,查看数据库

1 查看

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB

2 创建用户

在admin库里面创建一个用户为admin,密码为admin122

use admin//需要切换到admin库
db.createUser( { user: "admin", customData: {description: "superuser"}, pwd: "admin122", roles: [ { role: "root", db: "admin" } ] } )

验证用户是否创建成功

> db.auth("admin","admin122")
1

3 查看用户

列出所有用户,需要切换到admin库

> db.system.users.find()
{ "_id" : "admin.admin", "userId" : UUID("497463f9-6520-4743-866d-abde0f2588d3"), "user" : "admin", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "NZW2IKw7SjntHynYOK9DNg==", "storedKey" : "+zsDx85UedsoCzWxSqoR2+yFzUg=", "serverKey" : "rfFvQ4hudXbPKYnDWq9YDzwby4I=" }, "SCRAM-SHA-256" : { "iterationCount" : 15000, "salt" : "hK8Ag538a/LSFY1SvWbdYgxPUKjoZwOAK2dYxA==", "storedKey" : "TMvrW/w/gVry7iT0/JlBxzu6+a30HfqVwHiwdlzX6MU=", "serverKey" : "xujwcHIGJAfGcaUqHCxyUs+sczQZFKcRhpbhiDdVLKY=" } }, "customData" : { "description" : "superuser" }, "roles" : [ { "role" : "root", "db" : "admin" } ] }

查看用户信息

> show users
{
	"_id" : "admin.admin",
	"userId" : UUID("497463f9-6520-4743-866d-abde0f2588d3"),
	"user" : "admin",
	"db" : "admin",
	"customData" : {
		"description" : "superuser"
	},
	"roles" : [
		{
			"role" : "root",
			"db" : "admin"
		}
	],
	"mechanisms" : [
		"SCRAM-SHA-1",
		"SCRAM-SHA-256"
	]
}

二 更改配置文件

默认创建完用户之后是不生效的,需要更改配置文件,然后重启服务

1 更改配置文件

vim /etc/mongod.conf

security:
  authorization: enabled

2 重启服务

systemctl restart mongod

3 重新登录

mongo -u "admin" -p "admin122"

三 创建库

首先登录成功之后,使用use db1,就可以创建一个名为db1的新库,但是show dbs的时候是看不到的,这需要我么插入一条数据才可以

use db1
db.db1.insert({"name":"hnf"}) # 插入数据

#查看数据库
> show dbs
admin   0.000GB
config  0.000GB
db1     0.000GB
local   0.000GB

四 用户权限

readWrite:允许用户读写指定数据库
 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
 userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
 clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
 readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
 readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
 userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
 root:只在admin数据库中可用。超级账号,超级权限

相关推荐