权限管理和备份

前言

这一节学习的是 MySQL数据库的权限管理和备份。学习了解即可!

1、用户管理

SQLyog 可视化管理

SQL 命令操作

用户表:mysql.user

本质:对这张表进行增删改查,进行用户的删除/添加,用户权限修改

创建/删除用户

-- 创建用户 create user 用户名 identified by ‘密码’
CREATE USER woodwhale IDENTIFIED BY '123456'

-- 删除用户
DROP USER woodwhale

-- 修改密码(修改当前用户密码)
SET PASSWORD = PASSWORD('666666')

-- 修改密码(修改指定用户密码)
SET PASSWORD FOR woodwhale = PASSWORD('123456')

-- 重命名 rename user 旧名 to 新名
RENAME USER woodwhale TO woodwhale2

授/撤权用户

-- 用户授权 all privilege 全部权限, 库.表
GRANT ALL PRIVILEGES ON *.* TO woodwhale
-- 这个被授'所有'权力的用户.没有更改其他用户的权限

-- 权限查询
SHOW GRANTS FOR woodwhale	-- 查看指定用户的权限
SHOW GRANTS FOR root@localhost	-- 查看root权限

-- root用户权限如下 
-- GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION

-- 撤销权限 remove 哪个权限 ,哪个库撤销,给谁撤销
REMOVE ALL PRIVILEGES ON *.* FROM woodwhale

权限解释

-- 权限列表
ALL [PRIVILEGES]    -- 设置除GRANT OPTION之外的所有简单权限
ALTER    -- 允许使用ALTER TABLE
ALTER ROUTINE    -- 更改或取消已存储的子程序
CREATE    -- 允许使用CREATE TABLE
CREATE ROUTINE    -- 创建已存储的子程序
CREATE TEMPORARY TABLES        -- 允许使用CREATE TEMPORARY TABLE
CREATE USER        -- 允许使用CREATE USER, DROP USER, RENAME USER和REVOKE ALL PRIVILEGES。
CREATE VIEW        -- 允许使用CREATE VIEW
DELETE    -- 允许使用DELETE
DROP    -- 允许使用DROP TABLE
EXECUTE        -- 允许用户运行已存储的子程序
FILE    -- 允许使用SELECT...INTO OUTFILE和LOAD DATA INFILE
INDEX     -- 允许使用CREATE INDEX和DROP INDEX
INSERT    -- 允许使用INSERT
LOCK TABLES        -- 允许对您拥有SELECT权限的表使用LOCK TABLES
PROCESS     -- 允许使用SHOW FULL PROCESSLIST
REFERENCES    -- 未被实施
RELOAD    -- 允许使用FLUSH
REPLICATION CLIENT    -- 允许用户询问从属服务器或主服务器的地址
REPLICATION SLAVE    -- 用于复制型从属服务器(从主服务器中读取二进制日志事件)
SELECT    -- 允许使用SELECT
SHOW DATABASES    -- 显示所有数据库
SHOW VIEW    -- 允许使用SHOW CREATE VIEW
SHUTDOWN    -- 允许使用mysqladmin shutdown
SUPER    -- 允许使用CHANGE MASTER, KILL, PURGE MASTER LOGS和SET GLOBAL语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections。
UPDATE    -- 允许使用UPDATE
USAGE    -- “无权限”的同义词
GRANT OPTION    -- 允许授予权限
 
 
/* 表维护 */
 
-- 分析和存储表的关键字分布
ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE 表名 ...
-- 检查一个或多个表是否有错误
CHECK TABLE tbl_name [, tbl_name] ... [option] ...
option = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED}
-- 整理数据文件的碎片
OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] 

2、数据库备份

为什么要备份:

  • 保障重要数据不丢失
  • 保障数据转移的安全性

MySQL数据库备份的方式

  • 直接拷贝物理文件
  • 在例如SQLyog 这种可视化工具中手动导出
  • 使用命令行(cmd)导出 mysqldump

SQLyog备份导出

SQLyog导入

将sql文件拖入SQLyog中即可

cmd导出

导出表的格式
-- mysqldump -h 主机 -u 用户名 -p密码 数据库 表1 表2 表3 > 物理磁盘位置/文件名

导出数据库的格式
--  mysqldump -h 主机 -u 用户名 -p密码 数据库> 物理磁盘位置/文件名

cmd导入 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2I08mNcH-1613629529028)(C:\Users\木鲸\AppData\Roaming\Typora\typora-user-images\image-20210216201951526.png)]

-- 登录情况下,切换到指定的数据库
-- source 备份文件
source D:/a.sql

-- 在非登录情况下,直接导入
mysql -u用户名 -p密码 库名< 备份文件

后话

关于MySQL的权限管理和备份的知识就这么多了,有任何问题和错误欢迎在评论区指出,我会和小伙伴们讨论的!