MySQL的用户权限
在MySQL内部,服务器将权限信息存储在mysql数据库的授权表中(即,在名为的数据库中mysql)。
MySQL服务器在启动时将这些表的内容读取到内存中,并基于授予表的内存副本对访问控制做出决定。MySQL特权系统确保所有用户只能执行允许的操作。
作为用户,当您连接到MySQL服务器时,您的身份由连接的主机和您指定的用户名确定。在连接后发出请求时,系统将根据您的身份和您想要执行的操作授予权限。因为没有理由认为给定的用户名属于所有主机上的同一个人,所以MySQL会将您的主机名和用户名都视为识别您的身份。
当您运行连接到服务器的客户端程序时,MySQL访问控制涉及两个阶段:
- 阶段1:服务器根据您的身份接受或拒绝连接,以及您是否可以通过提供正确的密码来验证您的身份。
- 阶段2:假设您可以连接,服务器会检查您发出的每条语句,以确定您是否有足够的权限来执行它。例如,如果尝试从数据库中的表中选择行或从数据库中删除表,则服务器会验证您是否具有SELECT该表的DROP权限或数据库的权限。