mongodb基本语句和用户管理--02

1. 基本语句

查看库
分号可加可不加

show databases;
show dbs;
use yq 不用创建,use会自动创建,表插入数据也会自动创建

默认使用json的格式存储数据,不区分类型,都是字符串

数据库的对象
库databases
表collection
行 document

db级别命令

db  当前所在的库
db.[tab]  使用tab补全
db.help 查看帮助

collection级别的操作

db.collection.xxx

插入数据
db.t1.insert({name:"yq"})

复制集有关的操作

rs.

分片的操作

sh.

帮助命令的使用

show 
use 
db.help()
db.a.help()
rs.help()
sh.help()

常规的操作

db 或 db.getName()显示当前的数据库
show dbs查询所有库
use local切换数据库
show tables查看表
db.stats()显示当前数据库状态
db.getMongo()查看当前数据库的连接机器地址

库的操作

创建数据库:
当use的时候,系统就会自动创建一个数据库。
如果use之后没有创建任何集合。
系统就会删除这个数据库。

删除数据库
如果没有选择任何数据库,会删除默认的test数据库
删除:

use test

db.dropDatabase()   

集合操作

创建
use  yq
db.createCollection('a')
db.createCollection('b')
show collections
db.getCollectionNames()

插入数据
当插入一个文档的时候,一个集合就会自动创建
use oldboy
db.oldguo.insert({id : "1021" ,name : "zhssn" ,age : "22" ,gender : "female",address : "sz"})


查询数据:
db.oldguo.find({id:"101"}).pretty()
db.oldguo.find().pretty()

删除集合
use app
db.log.drop()
log就是你要删除的集合的名字

重命名集合
db.log.renameCollection("log1")
show collections

批量的插入
for(i=0;i<10000;i++){db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new
Date()})}

查询数据
所有
db.t1.find()
注:默认每页显示20条记录,当显示不下的的情况下,可以用it迭代命令查询下一页数据。
设置每页显示数据的大小:
> DBQuery.shellBatchSize=50; //每页显示50条记录

查看第1条记录
db.log.findOne()

删除集合中的记录数
db.log.remove({})

查询去掉当前集合中某列的重复数据
db.log.distinct("name")

查看集合存储信息
app> db.log.stats()
app> db.log.dataSize() //集合中数据的原始大小
app> db.log.totalIndexSize() //集合中索引数据的原始大小
app> db.log.totalSize() //集合中索引+数据压缩存储之后的大小    *****
app> db.log.storageSize() //集合中数据压缩存储的大小

2. 用户的管理

验证库,建立用户时use到的库,在使用用户时,要加上验证库才能登陆。对于管理员用户,必须在admin下创建.

  1. 建用户时,use到的库,就是此用户的验证库
  2. 登录时,必须明确指定验证库才能登录
  3. 通常,管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库
  4. 如果直接登录到数据库,不进行use,默认的验证库是test,不是我们生产建议的.

2.1 创建用户的格式

use admin 
db.createUser
{
    user: "<name>",
    pwd: "<cleartext password>",
    roles: [
       { role: "<role>",
     db: "<database>" } | "<role>",
    ...
    ]
}

说明:

基本语法说明:
user:用户名
pwd:密码
roles:
    role:角色名
    db:作用对象	
role:root, readWrite,read   

验证数据库:
mongo -u oldboy -p 123 10.0.0.51/oldboy

2.2 创建一个超级管理员用户

2.2.1 创建用户

mongo
use admin 

db.createUser(
{
    user: "root",
    pwd: "root123",
    roles: [ { role: "root", db: "admin" } ]
}
)

验证用户
db.auth('root','root123')

2.2.2 配置文件的修改

添加
开启用户验证

security:
  authorization: enabled

总的配置文件

systemLog:
   destination: file
   path: "/mongodb/log/mongodb.log"
   logAppend: true
storage:
   journal:
      enabled: true
   dbPath: "/mongodb/data/"
processManagement:
   fork: true
net:
   port: 27017
   bindIp: 192.168.80.51,127.0.0.1
security:
  authorization: enabled

重启

mongod -f /mongodb/conf/mongo.conf --shutdown 
mongod -f /mongodb/conf/mongo.conf 

登录验证

mongo -uroot -proot123  admin
mongo -uroot -proot123  192.168.80.51/admin

注意
在这里插入图片描述
假若我们这样mongo -uroot -proot123 192.168.80.51,就会报错,必须跟库的名称,在那个库下创建的就跟那个库的名称

[mongod@db01 conf]$ mongo  -uroot -proot123 192.168.80.51/admin 
MongoDB shell version v3.6.12
connecting to: mongodb://192.168.80.51:27017/admin?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c912c54c-8bc4-40cf-a4d1-34b0c4bba38c") }
MongoDB server version: 3.6.12
> 

用户的查看

use admin
db.system.user.find().pretty()

> db.system.users.find().pretty()
{
	"_id" : "admin.root",
	"user" : "root",
	"db" : "admin",
	"credentials" : {
		"SCRAM-SHA-1" : {
			"iterationCount" : 10000,
			"salt" : "kj0Un9SNfWD9kCM6gOgW0A==",
			"storedKey" : "XYnQioev6EmzZesxjy3Sdkarydc=",
			"serverKey" : "NmySZOdIuOLKQb5IUWY/hSnjTi4="
		}
	},
	"roles" : [
		{
			"role" : "root",
			"db" : "admin"
		}
	]
}

2.3 创建管理用户dbAdmin,只能对库进行操作

mongo -uroot -proot123  admin

use app

db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "dbAdmin", db: "app" } ]
}
)

db.auth('admin','admin')

mongo -uadmin -padmin 10.0.0.51/app

2.4 创建一个库的用户,可读写

超级管理员用户登录
mongo -uroot -proot123 admin

use app

db.createUser(
	{
		user: "app01",
		pwd: "app01",
		roles: [ { role: "readWrite" , db: "app" } ]
	}
)

验证

本地
mongo -uapp01 -papp01 app
远程
mongo -uapp01 -papp01 192.168.80.51/app

2.5 创建app数据库读写权限的用户并对test数据库具有读权限

mongo -uroot -proot123 192.168.80.51/admin
use app
db.createUser(
{
user: "app03",
pwd: "app03",
roles: [ { role: "readWrite", db: "app" },
{ role: "read", db: "test" }]})

2.6 查询所有的用户

mongo  -uroot -proot123 admin 
db.system.users.find().pretty()

2.7 删除用户

在那个库下边创建的用户,use库里边进行删除
必须登录管理员的账户

mongo -uroot -proot123 192.168.80.51/admin
use app
db.dropUser("app01")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长安有故里y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值