mongodb创建local库用户_mongodb简单操作及用户管理

操作monogdb

mongodb创建local库用户_mongodb简单操作及用户管理_第1张图片

mongodb中有三个默认的库,admin管理库,config配置库,local本地库,这三个库不要删除修改

还有一个test库,登录到mongodb中,默认进入test库

db 命令获取当前所在数据库名称

创建临时库的方法use tmp,如果不在临时库中操作,那么退出登录时,临时库会被删除。如果在临时库中建立集合,则临时库会永久保存下来

演示示例

use tmp

db.collection.insert({name:'张三'})

show dbs

use tmp

db.collection.find()命令种类

数据库对象库(database),表(collection),行(document)

db.命令

DB级别命令

db.[TAB] 类似于linux的tab功能

db.help() db级别的命令使用帮助

库的操作

db.tmpdb

db.dropDatabase()

集合的操作

db.createCollection('b')

db.collection.insert({name:'张三'})

db.stu.insert({id:101,name:'张三',age:20,gender:'m'})

db.stu.insert({id:102,name:'lisi'})

db.stu.insert({a:'b',c:'d'})

db.stu.insert({a:1,c:2})文档操作

for (i=0;i

查询文档数量

db.log.count()

查找所有数据,按默认每页显示20条文档

db.log.find()

设置每页条数

DBQuery.shellBatchSize=50

查找所有数据,按页显示

db.log.find()

db.log.find({uid:999})

查找第一条数据

db.log.findOne()

查询去掉当前集合中某列的重复数据

db.log.distinct("name")

查找uid为999的文档,并格式化打印

db.log.find({uid:999}).pretty()

删除集合中所有记录

db.log.remove({})

mongodb创建local库用户_mongodb简单操作及用户管理_第2张图片

集合中索引+数据压缩存储之后的大小,单位为字节

db.log.totalSize()用户及权限管理

配置验证前权限之前,需要在/mongodb/conf/mong.conf追加如下配置

security:

authorization: enabled

重启mongodb,输入密码后,重启成功

systemctl restart mongod.services

验证库: 建立用户时use到的库,在使用用户时,要加上验证库才能登陆。

对于管理员用户,必须在admin下创建.

建用户时,use到的库,就是此用户的验证库

登录时,必须明确指定验证库才能登录

通常,管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库

如果直接登录到数据库,不进行use,默认的验证库是test,不是我们生产建议的.

从3.6 版本开始,不添加bindIp参数,默认不让远程登录,只能本地管理员登录。

用户验证信息,除了用户名,密码,还包括使用的数据库名称

Authentication Options:

-u [ --username ] arg username for authentication

-p [ --password ] arg password for authentication

--authenticationDatabase arg user source (defaults to dbname)

--authenticationMechanism arg authentication mechanism

--gssapiServiceName arg (=mongodb) Service name to use when authenticating

using GSSAPI/Kerberos

--gssapiHostName arg Remote host name to use for purpose of

GSSAPI/Kerberos authentication

mongodb创建local库用户_mongodb简单操作及用户管理_第3张图片

用户创建语法基本语法说明

role表示权限范围,root代表超级管理员,readWrite代表可读写,read代表可读,dbAdmin仅代表可以对数据库操作

user:用户名

pwd:密码

roles:

role:角色名

db:作用对象

role:root,readWrite,read,dbAdmin

登入方式验证用户

mongo -u root -p root 192.168.255.101/admin

以超管理登入后验证用户及密码

db.auth('root','root')

创建管理员用户

管理所有数据库(必须 use admin再去创建)

db.createUser(

{

user:"root",

pwd:"root",

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

}

)

##########返回值如下############

Successfully added user: {

"user" : "root",

"roles" : [

{

"role" : "root",

"db" : "admin"

}

]

}

未指定验证库,显示登录失败

[mongod@base ~]$ mongo -uroot -proot 192.168.255.101

MongoDB shell version v3.6.12

connecting to: mongodb://192.168.255.101:27017/test?gssapiServiceName=mongodb

2020-06-23T18:54:08.689+0800 E QUERY [thread1] Error: Authentication failed. :

connect@src/mongo/shell/mongo.js:263:13

@(connect):1:6

exception: connect failed

指定验证库登录,显示登录成功

[mongod@base ~]$ mongo -uroot -proot 192.168.255.101/admin

MongoDB shell version v3.6.12

connecting to: mongodb://192.168.255.101:27017/admin?gssapiServiceName=mongodb

Implicit session: session { "id" : UUID("c00e255a-f3d6-4b89-9d51-33a6e52ce870") }

MongoDB server version: 3.6.12

> show dbs;

admin 0.000GB

config 0.000GB

local 0.000GB

test 0.000GB

创建对app数据库,读写权限的用户app

超级管理员登录

mongo -uroot -proot admin

选择一个验证库

use app;

创建用户

db.createUser(

{

user:"app",

pwd:"app",

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

}

)

超经管理员做验证,返回1说明创建成功,退出超管

db.auth('app','app')

使用普通用户登录

可以对app数据库执行创建表,删除表,插入删除数据操作,没有权限使用其他数据库

mongo -uapp -papp 192.168.255.101/app

创建只读用户

超级管理员登录

mongo -uroot -proot admin

选择一个验证库

use readonly;

创建用户

db.createUser(

{

user:"readonly",

pwd:"readonly",

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

}

)

创建数据

db.stu.insert({name:"zhangsan"})

超经管理员做验证,返回1说明创建成功,退出超管

db.auth('readonly','readonly')

使用普通用户登录

只能对readonly数据库执行查询操作,没有其他权限操作数据库

mongo -ureadonly -preadonly 192.168.255.101/readonly

查询mongodb中的用户信息

使用超级管理员登录

mongo -uroot -proot 192.168.255.101/admin

use admin

查询所有用户信息

db.system.users.find().pretty()

返回值解释

{

"_id" : "admin.root", #库.用户名

"user" : "root", #用户名

"db" : "admin", #库

"credentials" : { #加密算法

"SCRAM-SHA-1" : {

"iterationCount" : 10000,

"salt" : "TMeyV16nLfpJ/+T6ybj4BQ==",

"storedKey" : "yOaGmidV3cQLWlowqHgiuYzTCVw=",

"serverKey" : "sj/ih9b4jXuZqiSqt9xzY1jOIVs="

}

},

"roles" : [

{

"role" : "root", #角色

"db" : "admin" #库

}

]

}

删除用户

使用超级管理员登录

mongo -uroot -proot 192.168.255.101/admin

use admin

删除指定用户

db.dropUser('readonly')

你可能感兴趣的:(mongodb创建local库用户_mongodb简单操作及用户管理)