mysql用户授权语句是什么
在 MySQL 中,用户授权是通过
GRANT语句完成的。以下是使用GRANT命令为用户分配权限的基本语法和常见示例:
一、基本语法
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名' IDENTIFIED BY '密码';
- 权限列表:如
SELECT、INSERT、UPDATE等,或使用ALL PRIVILEGES表示所有权限。 - 数据库名.表名:
*.*表示所有数据库的所有表。database_name.*表示特定数据库的所有表。database_name.table_name表示特定数据库的特定表。- 用户名:MySQL 用户名。
- 主机名:
localhost表示本地访问。%表示任何主机访问。- IDENTIFIED BY ‘密码’(可选):用于创建用户并指定密码。如果用户已存在,则不需要此部分。
二、常见授权示例
1. 创建用户并授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'user_name'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
- 授予用户
user_name对所有数据库和表的所有权限。 WITH GRANT OPTION:允许该用户将自己的权限授予其他用户。
2. 授予特定权限
为用户授予对特定数据库和表的操作权限:
GRANT SELECT, INSERT, UPDATE ON database_name.table_name TO 'user_name'@'localhost';
此命令仅授予 SELECT、INSERT 和 UPDATE 权限。
3. 授予单个数据库的所有权限
GRANT ALL PRIVILEGES ON database_name.* TO 'user_name'@'localhost' IDENTIFIED BY 'password';
此命令授予 user_name 对 database_name 数据库的所有表的完全权限。
4. 查看用户权限
要查看某个用户的权限,可以使用以下命令:
SHOW GRANTS FOR 'user_name'@'host';
5. 撤销权限
如果需要撤销已授予的权限,可以使用 REVOKE 语句:
REVOKE 权限列表 ON 数据库名.表名 FROM 'user_name'@'host';
例如:
REVOKE SELECT, INSERT ON database_name.* FROM 'user_name'@'localhost';
三、刷新权限
执行授权或撤销后,可能需要刷新权限以立即生效:
FLUSH PRIVILEGES;
通过以上语句可以灵活地管理 MySQL 用户的权限和访问控制。
更多信息请关注其他相关文章!