数据库原理与应用基础第13章 MySQL权限管理
第13章 MySQL权限管理访问控制权限表用户管理账户权限管理知识点小结本章实验
第13章 MySQL权限管理为了保证数据库的安全,MySQL数据库提供了完善的管理机制和操作手段。MySQL数据库中的用户分为普通用户和root用户,用户类型不同,其具体的权限也会有所不同。root用户是超级管理员,拥有所有的权限;普通用户只能拥有创建用户时赋予它的权限。本章介绍MySQL数据库中的用户权限管理,主要包括3部分内容,它们分别是权限管理表、用户管理和权限管理。
第13章 MySQL权限管理访问控制权限表用户管理账户权限管理知识点小结本章实验
访问控制为满足mysql服务器的安全基础,考虑以下内容:1.多数用户只需要对表进行读和写,但少数用户需要能创建和删除表;2.某些用户需要读表,但可能不需要更新表;3.可能想允许用户添加数据,但不允许他们删除数据;4.某些用户(管理员)可能需要处理用户账号的权限,但多数用户不需要;5.可能想让用户通过存储过程访问数据,但不允许他们直接访问数据;6.可能想根据用户登录的地点限制对某些功能的访问。
第13章 MySQL权限管理访问控制权限表用户管理账户权限管理知识点小结本章实验
权限表mysql服务器通过mysql权限来来控制用户对数据库的访问,安装mysql数据库成功后,会自动安装多个数据库。mysql权限表存放在名称为mysql的数据库里。常用到的表有user、db、table_priv、columns_priv、column_priv和procs_priv。
user表user表示mysql中最终的一个权限表。可以使用desc语句来查看user的基本结构。user列主要分为4个部分:用户列、权限列、安全列和资源控制列。用的最多的就是用户列和权限列。权限普通权限:用于对数据库的操作。管理权限:对数据库进行管理的操作。
user表当用户进行连接时,权限表的存取过程有以下两个阶段:先从user表中的host、user和password这3个字段中判断连接的ip、用户名称和密码是否存在于表中,如果存在,则通过身份验证,否则拒绝连接。如果通过身份验证,按照以下权限的顺序得到数据库权限:user、db、table_priv、colums_priv。这几个表的权限依次递减,全局权限覆盖局部权限。
user表1)用户字段:user表中的host、user和password字段都属于用户字段。2)权限字段user表中包含几十个与权限有关以priv结尾的字段,这些权限字段决定了用户的权限,这些权限包括基本权限、修改和添加权限、关闭服务器权限、超级权限和加载权限等。3)安全字段:安全列只有6个字段两个是ssl相关的:ssl_type和ssl_cipher,2个是x509相关的:x509_issuer和x509_subject,另外2个是授权插件相关的。ssl用于加密;x509标准可用于标识用户;plugin字段标识可以用于验证用户身份的插件,如果该字段为空,服务器使用内建授权验证机制验证用户身份。
user表4)资源控制列资源控制列的字段用来限制用户使用的资源,包含4个字段,分别为:max_questions:用户每小时允许执行的查询操作次数。max_updates:用户每小时允许执行的更新操作次数。max_connections:用户每小时允许执行的连接操作次数。max_user_connections:单个用户可以同时具有的连接次数。这些字段的默认值为0,表示没有限制。
db表和host表db表和host表也是mysql数据库中非常重要的权限表。db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库;host表中存储了某个主机对数据库的操作权限,配合db权限表对给定主机上数据库级操作权限做更细致的控制。这两个权限表不受grant和revoke语句的影响。db表比较常用,host表一般很少使用。db表和host表结构相似,可以使用desc语句来查看这两个表的基本结构。字段大致可以分为两类:用户列和权限列。
db表和host表1)用户列db表的用户列有3个字段:host、db和user。这3个字段分别表示主机名、数据库名和用户名;host表的用户列有两个字段:host和db。这两个字段分别表示主机名和数据库名。host表是db表的扩展。如果db表中找不到host字段的值,就需要到host表中去寻找。但是host表很少用到,通常db表的设置已经可以满足权限控制要求了。
db表和host表2)权限列db表和host表的权限列大致相同,表中create_routine_priv和alter_routine_priv这两个字段表明用户是否有创建和修改