MySql教程

MySQL 03. Security

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

MySQL安全涉及:Backup/Recovery,Network,System,DB features,General Issues

一、General Issues:

1.最小权限原则:mysql.user

 权限有几个限制:

  a. 只能允许,不能拒绝

  b. create/ drop 无法区分是针对table,还是DB

  c. password 只能授予 user object,不能是其他对象(db, table, or routine)

2.健壮的密码:mysql_config_editor,hash(hash(password)+salt),Linux History Clear

   保护:system access 最小化权限

   创建/修改用户SQL中password会被mysql重写保护,禁止直接:insert/update mysql.user,会记录到日志

   轮替策略:validate_password plugin

3.防火墙式ACL,IP Limitations:

  如果是因为DNS解析问题,mysqladmin flush-hosts,刷新DNS host cache

4.Client Programming Security

5.传输加密:tcpdump -l -i eth0 -w - src or dst port 3306 | strings

6.禁止root启动MySQL

 file privilege:可以启动mysqld的用户权限写数据到系统中 into outfile,还可以读系统中的数据 load data,用 [secure_file_priv] 限制

 plugin_dir:限制同上

 process privi : 可以看到正在执行的SQL,包括密码设置

7.config variables

  binary_encryption = ON

  have_symlink = DISABLE

  stored object access control

  [load data ] local-infile = 0

  bind_address | skip-network : login locally

  require_secure_transport = ON

8.Account Categories

   Partial Revokes from Global privileges

9.修改权限之后,如何生效:

  1.Grant操作,直接生效;

  2.insert操作,需要mysqladmin flush-privileges | reload;

  3.table/column级,下一请求即生效;

    database级,执行下一个"use db;"后生效;

    global和password级,下一个session生效;

  4.user():登录mysql的user; current_user():当前被授权的user,即正在用来操作数据库的user;

 

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