MySQL中用户和数据库之间存在着密切但独立的关系,主要体现在以下几个方面:
mysql.user
系统表中MySQL通过授权机制(Grant)将用户与数据库关联起来:
GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机';
例如:
GRANT SELECT, INSERT ON mydb.* TO 'appuser'@'localhost';
MySQL权限系统是多层级的:
*.*
)mydb.*
)mydb.mytable
)-- 创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
-- 授予权限
GRANT ALL PRIVILEGES ON database.* TO 'username'@'host';
-- 查看用户权限
SHOW GRANTS FOR 'username'@'host';
-- 撤销权限
REVOKE ALL PRIVILEGES ON database.* FROM 'username'@'host';
-- 删除用户
DROP USER 'username'@'host';
理解用户与数据库的关系对于MySQL安全管理至关重要,合理的权限分配能有效保障数据安全。