You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在SQL中限制用户VMVN查看BADGEACCESS表,其余表权限不变?

如何限制用户查看指定SQL数据表

嘿,这个需求挺典型的,我来给你拆解下不同数据库系统的操作方法——毕竟不同SQL数据库的权限控制语法有点区别,你对应自己用的来就行:

MySQL/MariaDB 操作步骤

假设你已经创建了用户VMVN,现在要限制它查看BADGEACCESS表,其余表权限保留:

  1. 如果你之前给过VMVN对整个数据库的SELECT权限,先撤销它对BADGEACCESS的查询权限:
REVOKE SELECT ON 你的数据库名.BADGEACCESS FROM 'VMVN'@'你的主机地址';

(注意替换你的数据库名你的主机地址为实际值,比如localhost或者用户的IP)
2. 如果你是刚创建用户还没分配权限,直接给它指定表的查询权限:

GRANT SELECT ON 你的数据库名.EMPLOYEE TO 'VMVN'@'你的主机地址';
GRANT SELECT ON 你的数据库名.BADGE TO 'VMVN'@'你的主机地址';
GRANT SELECT ON 你的数据库名.EMPREC TO 'VMVN'@'你的主机地址';
  1. 最后刷新权限让设置生效:
FLUSH PRIVILEGES;

SQL Server 操作步骤

  1. 如果之前给过VMVN数据库级的SELECT权限,先撤销它对BADGEACCESS的权限:
REVOKE SELECT ON OBJECT::BADGEACCESS FROM VMVN;
  1. 新用户的话,直接授予指定表的查询权限:
GRANT SELECT ON EMPLOYEE TO VMVN;
GRANT SELECT ON BADGE TO VMVN;
GRANT SELECT ON EMPREC TO VMVN;

PostgreSQL 操作步骤

  1. 撤销VMVNBADGEACCESS的查询权限(如果之前有分配):
REVOKE SELECT ON BADGEACCESS FROM VMVN;
  1. 新用户直接批量授予权限:
GRANT SELECT ON EMPLOYEE, BADGE, EMPREC TO VMVN;

几个关键注意点

  • 执行这些命令必须用拥有管理员权限的账号(比如MySQL的root、SQL Server的sa、PostgreSQL的postgres);
  • 操作完成后,记得用VMVN账号登录测试:尝试查询BADGEACCESS应该会返回权限不足的错误,而其他表可以正常查询;
  • 如果VMVN还有其他权限(比如插入、修改),你可以根据需求调整REVOKEGRANT的权限类型,这里只针对查询权限做限制。

内容的提问来源于stack exchange,提问作者Bodhi

火山引擎 最新活动