You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为PostgreSQL用户授权排除特定前缀表的访问权限?

配置数据库用户权限(排除指定前缀表)

假设你使用的是MySQL数据库,以下是实现需求的具体步骤:

  1. 创建目标用户
    先创建需要的用户,指定允许访问的主机(localhost代表仅本地访问,若需远程访问可替换为%,注意安全):

    CREATE USER 'limited_user'@'localhost' IDENTIFIED BY 'your_secure_password';
    
  2. 授予基础权限并排除指定表
    先给用户授予something数据库下所有表的权限(可根据实际需求调整权限类型,比如仅需查询就用SELECT),再收回所有directus_前缀表的权限:

    -- 授予数据库内所有表的全权限(SELECT/INSERT/UPDATE/DELETE可按需增减)
    GRANT SELECT, INSERT, UPDATE, DELETE ON `something`.`%` TO 'limited_user'@'localhost';
    -- 收回directus前缀表的所有权限
    REVOKE ALL PRIVILEGES ON `something`.`directus_%` FROM 'limited_user'@'localhost';
    
  3. 刷新权限生效
    执行刷新命令让权限配置立即生效:

    FLUSH PRIVILEGES;
    

补充说明

  • 这种方式的优势是:后续新增的非directus_前缀表会自动对该用户开放权限,新增的directus_前缀表则自动被限制访问,无需重复配置。
  • 如果你只需要给用户查询权限,把GRANT语句里的权限改成SELECT即可。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:45:45