温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Column列权限如何设置

发布时间:2026-09-19 01:26:08 来源:亿速云 阅读:101 作者:小樊 栏目:数据库

“Column(列)权限”通常指数据库中对某张表的某些列进行访问控制(比如只允许看/改某些字段)。不同数据库设置方式不同,下面按常见数据库说明。


一、MySQL / MariaDB

MySQL 本身没有独立的列级权限系统,但可通过以下方式实现:

1️⃣ 使用视图(推荐)

CREATE VIEW v_user_safe AS
SELECT id, username FROM user;

GRANT SELECT ON db.v_user_safe TO 'app'@'%';

2️⃣ 列级 GRANT(有限支持)

GRANT SELECT (id, username) ON db.user TO 'app'@'%';

⚠️ 限制:

  • 只支持 SELECT / INSERT / UPDATE
  • 不支持 DELETE
  • 权限分散,难维护

二、PostgreSQL(推荐)

PostgreSQL 原生支持列权限。

1️⃣ 列级 SELECT

GRANT SELECT (id, username) ON users TO app_user;

2️⃣ 列级 UPDATE

GRANT UPDATE (email) ON users TO app_user;

3️⃣ 撤销列权限

REVOKE SELECT (phone) ON users FROM app_user;

✅ 支持到列级
✅ 安全、清晰


三、SQL Server

1️⃣ 列级 GRANT

GRANT SELECT ON OBJECT::dbo.Users (Phone) TO app_user;

2️⃣ 列级 DENY(禁止)

DENY SELECT ON dbo.Users (Salary) TO app_user;

四、Oracle

GRANT SELECT (salary) ON hr.employees TO app_user;

五、通用最佳实践(重要)

✅ 优先用视图

  • 更安全
  • 易维护
  • 不污染原始表权限

✅ 应用层也要控制

  • 数据库权限 ≠ 业务权限
  • 前端 / API 也要过滤字段

六、如果你指的是「非数据库」场景

请补充说明:

  • 是 BI 工具(如 Tableau / PowerBI)?
  • 是 前端表格组件(如 Ant Design / Element)?
  • 是 权限框架(如 Spring Security / Shiro)?

我可以给你更精确的方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手