MYSQL-权限管理和数据库简单备份

权限管理

对于用户的管理,mysql将用户的信息以表的形式存储起来了,就在mysql数据库下的user表中,我们可以通过以下方式来创建用户和分配权限。

创建一个用户:

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码'; 
-- 主机名:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%

通俗来说,这里的用户名,主机名和密码分别表示你是谁、从哪里来和你的验证。

  • eg:
CREATE USER 'Ara'@'%' IDENTIFIED BY '123456'; 
-- 创建一个用户名为Ara 密码为123456 并且可以通过任意远程主机登录的用户

查看某个用户的权限:

SELECT * FROM mysql.user WHERE USER = 用户名;

这个就完全是查询mysql中存储用户信息的表的sql语句。

  • eg:
-- 查看用户名为Ara的用户详细信息(包括权限)
SELECT * FROM mysql.user WHERE USER='Ara';

具体权限

权限名mysql.user表中的字段名权限级别含义
ALTERAlter_priv更改表
ALTER ROUTINEAlter_routine_priv存储过程更改存储过程
CREATECreate_priv数据库、表或者索引创建数据库、表或索引
CREATE ROUTINECreate_routine_priv存储过程创建存储过程
CREATE TABLESPACECreate_tablespace_priv创建共享表权限
CREATE TEMPORARY TABLESCreate_tmp_table_priv服务器管理创建临时表权限
CREATE USERCreate_user_priv服务器管理创建用户
CREATE VIEWCreate_view_priv视图创建视图
DELETEDelete_priv删除数据权限
DROPDrop_priv数据库或表删除数据库或表权限
EVENTEvent_priv事件事件的增删查改权限
EXECUTEExecute_priv存储过程执行存储过程的权限
FILEFile_priv服务器主机上的文件访问文件访问权限
GRANTGrant_priv用户赋予权限选项
INDEXIndex_priv索引权限
INSERTInsert_priv插入数据权限
LOCK TABLESlock_tables_priv服务器管理锁表权限
PROCESSProcess_priv服务器管理查看进程权限
REFERENCESReferences_priv创建外键的权限
RELOADReload_priv服务器管理执行刷新命令的权限
REPLICATION CLIENTRepl_client_priv服务器管理复制客户端
REPLICATION SLAVERepl_slave_priv服务器管理复制从机
SELECTSelect_priv查询权限
SHOW DATABASESShow_db_priv数据库查看所有数据库的权限
SHOW VIEWShow_view_priv视图查看视图权限
SHUTDOWNShutdown_priv服务器管理关闭数据库权限
SUPERSuper_priv服务器管理执行kill线程的权限
TRIGGERTrigger_priv触发器创建触发器
UPDATEUpdate_priv更新权限

给某个用户授权:

-- 权限之间用,号分隔 权限列表这里可以用ALL表示全部
-- 数据库名和表名可以使用* 表示全部的数据库或者全部的表
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'该用户的主机地址'; 

通俗来说就是,我们要为从哪里来(用户主机地址)的谁(用户名)赋予操作数据库什么地方(数据库名和表名)的什么操作权限(权限列表)。

  • eg:
-- 给Ara用户授予在jwgl数据库的所有表上可修改,创建临时表和删除数据库和表的权限
GRANT ALTER, CREATE TEMPORARY TABLES, DROP ON `jwgl`.* TO 'Ara'@'%'; 

移除某个用户的权限:

-- 权限之间用,号分隔 权限列表这里可以用ALL表示全部
-- 数据库名和表名可以使用* 表示全部的数据库或者全部的表
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'该用户的主机地址'; 

通俗理解就是,移除从哪里来(用户主机地址)的谁(用户名)的操作哪里(数据库名和表名)的什么权限(权限列表)。

  • eg:
-- 移除Ara用户创建临时表和删除数据库和表的权限
REVOKE CREATE TEMPORARY TABLES, DROP ON `jwgl`.* FROM 'Ara'@'%'; 

数据库简单备份

备份是个好习惯,万一哪天手误,把啥重要的数据删除了,要是没有备份,后果是可想而知的,下面博主展示用命令行来备份数据库(使用这个命令的前提是配置了mysql环境变量哦)。
格式:

mysqldump -h主机名 -u用户名 -p密码 数据库名 表名 >导出路径

注意:

  • 如果要同时导出一个数据库下的多张表,表名可以有多个,之间用空格隔开即可
  • 如果需要导出整个数据库,忽略表名即可

eg:

mysqldump -hlocalhost -uroot -prootroot jwgl user >D:/temp/user.sql

在这里插入图片描述

导出成功后,对应文件夹下就会出现备份的sql文件,我们可以使用记事本打开它,会发现里面就是sql语句。

当然我们备份出来肯定是为了防止意外情况,下面博主展示如何恢复:

-- 1.先进入某个数据库
use 数据库名;

-- 2.执行sql文件
source 文件路径;

eg:

use jwgl;
source D:/temp/user.sql

在这里插入图片描述

这样就表示恢复成功了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值