“Column(列)权限”通常指数据库中对某张表的某些列进行访问控制(比如只允许看/改某些字段)。不同数据库设置方式不同,下面按常见数据库说明。
MySQL 本身没有独立的列级权限系统,但可通过以下方式实现:
CREATE VIEW v_user_safe AS
SELECT id, username FROM user;
GRANT SELECT ON db.v_user_safe TO 'app'@'%';
GRANT SELECT (id, username) ON db.user TO 'app'@'%';
⚠️ 限制:
SELECT / INSERT / UPDATEDELETEPostgreSQL 原生支持列权限。
GRANT SELECT (id, username) ON users TO app_user;
GRANT UPDATE (email) ON users TO app_user;
REVOKE SELECT (phone) ON users FROM app_user;
✅ 支持到列级
✅ 安全、清晰
GRANT SELECT ON OBJECT::dbo.Users (Phone) TO app_user;
DENY SELECT ON dbo.Users (Salary) TO app_user;
GRANT SELECT (salary) ON hr.employees TO app_user;
✅ 优先用视图
✅ 应用层也要控制
请补充说明:
我可以给你更精确的方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。