SQL权限管理遵循最小权限原则,需按场景创建用户、限制登录源、细粒度授权、角色化管理及定期审计。

SQL权限管理的核心是“最小权限原则”——只给用户完成任务所必需的权限,不多不少。直接用GRANT ALL或长期保留root权限操作,是生产环境最常见也最危险的疏忽。
新建用户时就应明确其使用场景,避免泛用'%'通配符开放所有IP访问。
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'strong_pass123';
CREATE USER 'app_user'@'192.168.10.%' IDENTIFIED BY 'app_secret456';
DROP USER ''@'localhost';(MySQL默认可能有空用户名)权限粒度越细,风险越可控。优先用表级授权,必要时再细化到列或使用行级策略(需结合视图或条件注释)。
GRANT SELECT ON sales_db.reports TO 'reporter'@'%';
GRANT INSERT, UPDATE ON app_db.logs TO 'logger'@'10.0.2.%';
GRANT SELECT(id, name, created_at) ON users TO 'frontend'@'%';
REVOKE DELETE ON *.* FROM 'dev_user'@'%';
MySQL 8.0+ 支持角色(ROLE),适合团队协作场景。把权限打包成角色,再分配给用户,后续调整只需改角色,不用逐个用户操作。
本系统有两种操作用户,一种为普通用户,一种为管理员。普通用户可以查看公告、查看规章制度、更改个人密码、查看部门信息、查看员工信息、发表留言、进行工作总结等等;管理员可以对规章制度管理、系统权限设置、操作记录查看、部门管理、员工管理、任务分配、留言管理、工资管理、合同管理等登录帐号admin 密码 admin
0
CREATE ROLE 'analyst_role', 'etl_role';
GRANT SELECT, SHOW VIEW ON dw.* TO 'analyst_role';
GRANT 'analyst_role' TO 'alice'@'%';
SET ROLE 'analyst_role'; 或设为默认:SET DEFAULT ROLE 'analyst_role' TO 'alice'@'%';
权限不是一劳永逸的配置。建议每季度执行一次检查,重点看三类风险点。
SELECT user, host, account_locked, password_last_changed FROM mysql.user WHERE password_last_changed
SELECT * FROM mysql.role_edges WHERE role IN ('root', 'dba');(或查SELECT_priv='Y'等全局权限)SELECT DISTINCT table_schema FROM information_schema.tables WHERE table_schema NOT IN ('information_schema','mysql','performance_schema','sys'); 确保每个业务库都有明确归属基本上就这些。权限管理不复杂,但容易忽略细节。关键不是“能不能做”,而是“该不该做”和“谁来做”。每次授权前多问一句:这个权限今天必要吗?下周还必要吗?
以上就是SQL权限管理操作教程_SQL用户权限分配流程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号