MySQL 安全体系知识要点

1.MySQL权限系统

MySQL权限系统通过下面两个阶段进行认证:

(1)对连接的用户进行身份验证,合法的用户通过认证,不合法的用户拒绝连接。

(2)对通过认证的合法用户赋予相应的权限,用户可以在这些权限范围内对数据库做出相应的操作。

对身份的认证,My SQL是通过IP地址和用户名联合进行确认的,列入My SQL安装后默认创建的用户root@localhost表示用户root只能从本地(localhost)进行连接才可以通过认证,此用户从其他任何主机对数据库进行的连接都将被拒绝。也就是说,同样的一个用户名,如果来自不同的IP地址,则My SQL将其视为不同的用户名。

My SQL的权限表在数据库启动是的时候就载入内存,当用户通过身份验证后,就在内存中进行相应权限的存取,这样,此用户就可以在数据库中做权限范围内的各种操作了。

My SQL的用户信息存储在MYSQL 自带的mysql数据库的user表中。如果创建一个新的用户就叫做SQL用户,接下来就可以给这个用户设置一定的权限,这样一来就能更好地适应现实生活中的实际需求,以免出现权限分配不清。

2. Mysql账户权限安全

mysql中存在4个控制权限的表,分别为

1. mysql.USER表
2. mysql.DB表
3. mysql.TABLES_PRIV表
4. mysql.COLUMNS_PRIV表

要注意的是,Mysql中有一个数据库"information_schema",里面保存的也是一些权限信息,这个数据库"information_schema"是为系统管理员提供元数据的一个简便方式,它实际上是一个视图,可以理解为对Mysql中的一个信息的封装,对于Mysql主程序来说,身份认证和授权的信息的来源只有一个,就是"mysql"。

在我们进行数据库连接、登录的时候,mysql权限表的验证过程为:

(1)先从user表中的:

    1) Host
    2) User
    3) Password
这3个字段中判断连接的ip、用户名、密码是否存在,存在则通过验证。
(2) 通过身份认证后,进行权限分配,按照: 1) user 2) db 3) tables_priv 4) columns_priv 的顺序进行验证。

posted @ 2017-12-17 20:30  来自魔仙堡的计算机小白  阅读(347)  评论(0编辑  收藏  举报