mysql数据库授权,备份,恢复

一,数据库的用户授权

mysql数据库的root用户账号拥有对所有库,表的全部权限,频繁使用root用户会给数据库服务器带来一定的安全风险。实际工作中,通常会建立一些低权限的用户,只负责一部分库,表的管理的维护操作,甚至可以对查询,修改,删除记录等各种操作做进一步的细化限制,从而降低数据库风险。

1.授予权限

GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户,否则,GRANT语句用于修改用户信息。格式如下:

扫描二维码关注公众号,回复: 6454009 查看本文章

GRANT 权限列表 ON 库名.表名? TO?

用户名@来源地址? [ IDENTIFIED BY '密码' ]

注意:

权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔。如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。

库名.表名:用于指定授权操作的库和表的名称,其中可以使用通配符“*”。例如:“auth.*”表示auth库中所有表。

用户名@来源地址:用户指定用户名称和允许访问的客户机地址。来源地址可以是域名,IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址。如“%.benet.com”,"192.168.1.%"等。

IDENTIFIED

BY:用于设置用户连接数据库时苏使用的密码字符串。在新建用户时,若省略该部分,则用户密码为空。

使用GRANT语句授权的用户记录,会保存到mysql库的user,db,host,tables_priv等相关表中,无须刷新即可生效。

在企业服务器的应用中,数据库与网站服务器有时候是相互独立的。因此在mysql服务器中,应根据实际情况创建新的用户授权,允许授权用户从网站服务器访问数据库。

2.查看权限

SHOW

GRANT语句:专门用来查看数据库用户的授权信息,通过FOR子句可指定查看的用户对象(必须与授权时使用的对象名称一致),格式如下:

SHOW? GRANTS?

FOR? 用户名@来源地址

3.撤销权限

REVOKE语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍然可以连接到mysql服务器,但被禁止执行对应的数据库操作。格式如下:

REVOKE? 权限列表?

ON? 数据库名.表名?

FROM? 用户名@来源地址

二,数据库的备份与恢复

mysql数据库的备份可以采用多种方式。例如,直接打包数据库文件夹/usr/local/mysql/data,或者使用专门的导出工具。下面以mysql自带的倾倒工具mysqldump为例,分别介绍数据库的备份与恢复的操作方法。

1.备份数据库

通过mysqldump命令可以直接

将制定的库,表或全部的库导出为SQL脚本,便于该命令在不同版本的mysql服务器上使用。例如,当需要升级MySQL服务器时,可以先用mysqldump命令将原有库信息导出,然后直接在升级后的MySQL服务器中导入即可。

1)执行导出操作

使用mysqldump命令导出数据时,默认会直接在终端显示,若要保存到文件,还需要结合shell的“>”重定向输出操作。格式如下:

格式1:导出指定库中的部分表

mysqldump? [选项]?

库名? [表名1]?

[表名2]? .....?

?>?

?/备份路径/备份文件名

格式2:导出一个或多个完整的库(包括其中所有的表)

mysqldump?

?[选项]? ?

?--database?

库名1? [库名2]?

?......? ?

>? ? /备份路径/备份文件名

格式3:备份MySQL服务器中的所有库

mysqldump?

?[选项]?

?--all-database?

?>? /备份路径/备份文件名

使用格式3导出MySQL服务器中所有库,当导出数据量较大时,可以添加“--opt”选项以优化执行速度。

其中,常用的选项包括“-u”,"-p",分别用于指定数据库用户名,密码。

2)查看备份文件内容

通过mysqldump工具导出的SQL脚本是文本文件,其中“”部分或以“--”开投票的行表示注释信息。使用grep,less,cat等文本工具可以查看脚本内容。例如:执行以下操作可以过滤出auth.sql(mysql数据库的本备份文件名)脚本中的数据库操作语句。

grep? ?-v?

"^--"? auth.sql?

|? grep? -v?

"^/"? | grep?

-v? "^$"

2.恢复数据库

使用mysqldump命令导出的sql备份脚本,在需要恢复时可以通过mysql命令对其进行导入操作。格式如下:

mysql? [选项]?

[库名]? [表名]?

<? /备份路径/备份文件名

当备份文件中只包含表的备份,而不包括创建库的语句时,则执行导入操作时必须指定库名,且目标库必须存在。

若备份文件中已经包括完整的库信息,则执行导入操作时无须指定库名。



猜你喜欢

转载自www.cnblogs.com/mynale/p/11017873.html