用户账号及权限管理:


用户账号:'username'@'host'

     host:此用户访问当前mysql服务器时,允许其通过哪些主机远程创建连接;

     表示方式:IP,网络地址、主机名、通配符(%和_);


禁止检查主机名:my.cnf

     [mysqld]

     skip_name_resolve = ON


创建用户账号:

    CREATE  USER   'username'@'host'  [IDENTIFIED BY  'password'];


删除用户账号:

    DROP USER  ’user‘@’host' [, user@host] ...


授权:

     权限级别:管理权限、数据库、表、字段、存储例程;  

     GRANT  priv_type,...  ON  [object_type]  db_name.tbl_name  TO  'user'@'host'  [IDENTIFIED BY  'password'];

     priv_type: ALL  [PRIVILEGES]

     db_name.tbl_name:

         *.*:所有库的所有表;

         db_name.*:指定库的所有表;

         db_name.tbl_name:指定库的特定表;

         db_name.routine_name:指定库上的存储过程或存储函数;

     [object_type]

         TABLE

         FUNCTION

         PROCEDURE

     查看指定用户所获得的授权:

         SHOW GRANTS FOR  'user'@'host'

         SHOW GRANTS FOR CURRENT_USER;


回收权限:

    REVOKE  priv_type, ...  ON  db_name.tbl_name  FROM  'user'@'host';


注意:MariaDB服务进程启动时,会读取mysql库的所有授权表至内存中;

(1) GRANT或REVOKE命令等执行的权限操作会保存于表中,MariaDB此时一般会自动重读授权表,权限修改会立即生效;

(2) 其它方式实现的权限修改,要想生效,必须手动运行FLUSH PRIVILEGES命令方可;


加固mysql服务器,在安装完成后,运行mysql_secure_installation命令;