MySQL中授权用GRANT语句并需FLUSH PRIVILEGES刷新;权限粒度细,支持库、表、列级控制;语法为GRANT权限列表ON数据库.表TO'用户'@'主机'[IDENTIFIED BY'密码'];可查权限SHOW GRANTS、回收REVOKE、删用户DROP USER。
在 MySQL 中给用户授权,核心是用 GRANT 语句,配合 FLUSH PRIVILEGES 刷新权限生效。权限控制粒度细(库、表、列、操作类型),需明确指定用户、主机、数据库和具体权限。
标准写法如下:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'允许连接的主机' [IDENTIFIED BY '密码'];
说明:
SELECT, INSERT, UPDATE;也可用 ALL PRIVIL
EGES 表示所有权限(除授权权限)数据库名.表名 支持通配符:* 表示所有库,*.* 表示所有库所有表,mydb.* 表示 mydb 库下所有表'用户名'@'主机' 中主机部分常用 'localhost'(仅本机)、'192.168.1.%'(网段)、'%'(任意主机,注意安全性)IDENTIFIED BY 可同时设密码(推荐显式创建再授权更清晰)实际使用中几个高频例子:
GRANT ALL PRIVILEGES ON testdb.* TO 'devuser'@'localhost';
GRANT SELECT(name,email) ON myapp.user TO 'reporter'@'10.0.2.%';
GRANT CREATE, DROP ON *.* TO 'admin'@'%';
GRANT SELECT ON sales.orders TO 'auditor'@'%' WITH GRANT OPTION;
执行 GRANT 后权限不会立即生效,需手动刷新:
FLUSH PRIVILEGES;
说明:
授权不是单向操作,日常还需检查和撤销:
SHOW GRANTS FOR 'username'@'host';
REVOKE DELETE ON mydb.* FROM 'user'@'host';
DROP USER 'user'@'host';(MySQL 5.7+ 推荐方式)不复杂但容易忽略