在MySQL中添加新用户并授权需要通过SQL命令操作,通常使用
CREATE USER创建用户,再用
GRANT语句分配权限。以下是详细步骤。
1. 登录MySQL管理账户
打开终端或命令行工具,使用具有管理员权限的账户(如root)登录MySQL:
mysql -u root -p输入密码后进入MySQL命令行界面。
2. 创建新用户
使用
CREATE USER语句创建用户,语法如下: CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
示例:创建一个名为
devuser的用户,允许从本地连接,密码为
DevPass123!: CREATE USER 'devuser'@'localhost' IDENTIFIED BY 'DevPass123!';
若允许该用户从任意IP连接,可将主机设为
'%': CREATE USER 'devuser'@'%' IDENTIFIED BY 'DevPass123!';
3. 授予权限
使用
GRANT语句为用户分配权限。常见权限包括
SELECT、
INSERT、
UPDATE、
DELETE、
ALL PRIVILEGES等。
语法:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';示例:
授予devuser对
mydb数据库所有表的读写权限: GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'devuser'@'localhost';授予全部权限(谨慎使用): GRANT ALL PRIVILEGES ON mydb.* TO 'devuser'@'localhost';只授予查询权限: GRANT SELECT ON mydb.users TO 'devuser'@'localhost';
4. 刷新权限
执行以下命令使权限立即生效:
FLUSH PRIVILEGES;5. 验证权限设置
可通过以下命令查看用户权限:
SHOW GRANTS FOR 'devuser'@'localhost';确认输出中包含已授予的权限。
6. 可选:设置远程访问(需配置MySQL服务)
如果用户从远程连接(如
'devuser'@'%'),需确保: MySQL监听公网IP(检查
my.cnf或
mysqld.cnf中的
bind-address,可设为
0.0.0.0或注释掉) 防火墙开放3306端口 操作系统防火墙或云服务器安全组允许访问
7. 测试新用户登录
退出当前会话,使用新用户登录测试:
mysql -u devuser -p输入密码后,尝试执行相关操作验证权限是否正确。
基本上就这些。注意权限粒度要合理,避免随意授予
ALL PRIVILEGES,尤其是生产环境。定期审查用户和权限也是一种良好习惯。
