MySql教程

MySQL账号管理

本文主要是介绍MySQL账号管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.数据库 

概念 : 长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据 "仓库"

作用 : 保存,并能安全管理数据(如:增删改查等),减少冗余...

2.数据库总览 :

  • 关系型数据库 

MySQL , Oracle , SQL Server , 
关系型数据库通过外键关联来建立表与表之间的关系

  • 非关系型数据库

Redis , MongoDB , ...
非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定
4.MySQL中自带的比较重要的四张表

  • MySQL下载安装教程可参考我以前的文章
  • user表(用户层权限):首先登陆的时候验证Host,User,Password也就是ip,用户名,密码是否匹配,匹配登陆成功将会为登陆者分配权限;还有权限分配
  • db表(数据库层权限):Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv分别代表着查询,增加,更新,删除,创建,销毁)。其中Y代表这拥有此项权限,N则代表没有此项权限。
  • tables_priv表(表层权限):这是通过Host,Db,User,Table来进行定位到表层的一个权限分配。不过它只有Table_priv和Column_priv两个字段来记录权限。
  • columns_priv表(字段层权限):通过Host,Db,User,Table,Column来进行定位到字段层的一个权限分配,只有Column_priv来记录权限。

5.MySQL使用

5.1创建用户

create user 用户名

可以看到使用这种方式进行创建用户,用户ls是可以创建成功,但是没有密码,我们可以通过修改密码的方式去设置密码,密码是加密过的所有我们是看不懂的

ALTER USER '用户名'@'主机地址' IDENTIFIED WITH mysql_native_password BY '密码';

6 用户授权和撤销权限

6.1用户分配权限

grant 权限名on 数据库名.表名to 用户名字@'用户地址';

登录ls这个用户在没有任何授权操作之下ls是没有任何数据库的,现在我们给ls授权

#给用户ls赋予查询数据库wyy下t_mvc_book这个表的权限
grant select on wyy.t_mvc_book to ls@'%';

执行授权语句之后ls用户就多了一个数据库 ,但是ls现在只能查询这张表。

我们还可以给ls授权对数据库wyy的所有权限,以及数据库wyy中所有的表

#将数据库wyy下t_mvc_book表的所有权限给ls

grant ALL on wyy.t_mvc_book to ls@'%';

#将数据库wyy下所有表的所有权限给ls

grant ALL on wyy.* to ls@'%';

6.2撤销用户权限

revoke 权限名 on 数据库名.表名from 用户名@'地址'; 

现在我撤销ls的删除权限 

 #撤销ls对数据库wyy下t_mvc_book表的删除权限
REVOKE delete on wyy.t_mvc_book from ls@'%'

当我们撤销某个用户权限之后一定记得刷新当前权限设置

#刷新权限
flush privileges;  

当我们想要查看某个用户的所有权限时

#查询某个用户权限
show grants for 'ls'@'%'; 

当我使用ls登录对t_mvc_book这张表进行删除操作时提示当前没有删除权限

7.MySQL数据库创建

7.1手动创建

7.2 代码创建

  • create database 数据库名;(没有包含字符集编码)
  • create database if not exists 数据库名 default charset utf8 collate utf8_general_ci;

show databases;     查询所有数据库  

8.四大引擎

  • 如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择
  • 如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率
  • 如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果
  • 如果只有INSERT和SELECT操作,可以选择Archive,Archive支持高并发的插入操作,但是本身不是事务安全的。Archive非常适合存储归档数据,如记录日志信息可以使用Archive

具体使用哪一种引擎需要灵活选择,一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求,使用合适的存储引擎,将会提高整个数据库的性能

这篇关于MySQL账号管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!