新闻详情

新闻详情

首页 / 资讯中心 / 详情

Bytebase MCP 访问策略的 Disabled、Read-only 与 Read-write 三种模式怎么选?

发布时间:2026/9/15 17:25:43来源:尧图网络
Bytebase MCP 访问策略的 Disabled、Read-only 与 Read-write 三种模式怎么选?
Bytebase MCP 访问策略的 Disabled、Read-only 与 Read-write 三种模式怎么选【免费下载链接】bytebaseDatabase governance built for humans and agents — controlling changes and access across every major database.项目地址: https://gitcode.com/GitHub_Trending/by/bytebaseBytebase 的 MCP 集成页里有一个 Access policy访问策略设置管理员需要在 Disabled、Read-only 和 Read-write 三种模式之间选一个。它决定的是工作区内任何 MCP 会话最多能做什么——这是一个上限ceiling不是权限模式本身不授予也不收回任何权限每个 MCP 会话最终还能做什么同时受连接用户自身 RBAC 权限的约束。选错方向要么把数据库变更能力放给了不该有的 agent要么让本可以只读探索的同事连不进来。这篇文章基于仓库内的设计文档与实现代码给出每种模式实际放开了哪些能力、如何设置、以及如何验证设置已生效。三种模式各自放开了什么Bytebase 后端把每个 v1 API 方法标记为 READ、WRITE、FORBIDDEN 或 EXCLUDED 四类天花板门禁ceiling gate按模式放行方法类别。放行表在 mcp_gate.go 中var mcpServingClasses map[storepb.MCPSetting_Capability][]v1pb.MCPMethodClass{ storepb.MCPSetting_DISABLED: {}, storepb.MCPSetting_READ_ONLY: {v1pb.MCPMethodClass_READ}, storepb.MCPSetting_READ_WRITE: {v1pb.MCPMethodClass_READ, v1pb.MCPMethodClass_WRITE}, }也就是说三种模式是严格嵌套的Read-only 放行全部 READ 方法Read-write 在此之上追加 WRITE 方法Disabled 放行零个方法任何 MCP 连接都会被拒绝界面文案为 No MCP session can connect to this workspace.。设计文档 把这三个模式能做的事整理成了一张 8 行能力表read 3 行、write 5 行可以把它当作选型时的对照清单Read-only 放开的READ 层共 56 个方法读取 schema 与元数据schemas、databases 与 instances、projects 与 database groups、catalogs、changelogs、revisions、SQL review 配置、自己的会话与工作区信息31 个 READ 方法通过查询读取数据执行只读查询、query history、saved queries 与 sheets9 个 READ 方法。这里有一条规则如果请求中任何一条语句不是读整个请求会被拒绝只有在 PostgreSQL、CockroachDB 和 Redshift 上数据库会话本身还会以只读方式打开其他引擎仅按语句分类判断而分类为读的语句仍可能调用有写副作用的函数——proto 注释把这一层称为 classifier-enforced, not proven读取变更工作流issues 与评论、plans 与 plan checks、rollouts、task runs 与日志、releases、回滚预览16 个 READ 方法Read-write 追加的WRITE 层共 41 个方法 1 个语句级放开提出变更创建 sheets、创建和编辑 plans 与 issues、运行 plan checks 与 review、创建和删除 releases 与 revisions、生成 schema diff22 个 WRITE 方法。agent 永远无法批准自己的变更——批准类方法是 FORBIDDEN是否需要人工批准由项目的审批策略require_issue_approval决定运行 rollouts 与 tasksCreateRollout、BatchRunTasks、BatchSkipTasks、BatchCancelTaskRuns4 个 WRITE 方法仍受项目审批策略约束运行 DML 与 DDL 语句INSERT、UPDATE、DELETE、CREATE、ALTER、DROP 经由查询执行。这一项对应的不是某个方法而是mcp_sql_clamp.go中的语句级钳制——Read-write 把这道钳制放开导出查询结果SQLService/Export数据会离开 Bytebase管理数据库维护操作同步 instances 与 databases、database 设置与标签、在 projects 间移动 databases、database groups、saved queries14 个 WRITE 方法任何模式都不放开的floor121 个方法35 个 FORBIDDEN 86 个 EXCLUDEDNever, in any mode: approve issues, administer the workspace, or handle credentials.FORBIDDEN 与 EXCLUDED 的区别值得管理员知道FORBIDDEN 是永远不会被任何 MCP 模式放行例如会发回登录 token 的方法、会驱动凭证重置流程的方法、四个审批方法EXCLUDED 是本版本发布的不含工作区管理能力的模式都不放行未来可能放行例如读取他人 SQL、以管理员凭证打开数据库连接的方法。mcp_gate.go 中为每种拒绝原因维护了面向 agent 的说明文案拒绝时 agent 会收到形如 procedureis not available to MCP sessions because … 的错误。按团队角色做选型判断设置页对每个模式给出的 Best for 描述来自 en-US 文案与 设计文档 中的 Copy 一节一致模式界面描述Best forDisabledNo MCP session can connect to this workspace.keeping MCP off until you are ready to turn it onRead-onlySessions can explore schemas and run read-only queries. Bytebase classifies every statement before it runs and refuses a request whole if any statement is not a read. Where the engines driver has one, the database session is opened read-only as well. How deep this goes varies by engine.querying and exploring data, including by people who do not write SQLRead-writeSessions can also change data and schemas, as far as the connecting users own permissions allow.making database changes through an AI agent, still capped by each users own permissions据此文档支撑的选型路径是还没准备好让任何 AI 客户端接入包括评估期、或者临时需要一键切断所有 agent 访问选 Disabled。它同时是工作区的 MCP kill switch——/mcp端点每次请求都会读这个设置DISABLED 时连接直接被拒绝。用户只读查询、探索 schema尤其是不写 SQL 的人通过自然语言查数据选 Read-only。注意两个边界写入语句会导致整个请求被拒导出Export属于 WRITE 层Read-only 下 agent 无法把查询结果下载为文件数据不会经由 MCP 离开 Bytebase。需要 agent 执行数据库变更提变更、跑 rollout、跑 DML/DDL选 Read-write。前提是你要接受两条事实agent 的写操作上限是用户自身权限 ∩ WRITE 方法集合数据导出被放开但审批、工作区管理、凭证相关操作依然完全不可达。两个模式之间不是功能开关而是包含关系Read-write 并不替换 Read-only 的行为只在其上追加 WRITE 层。在哪里设置这是工作区级设置存储为独立的MCP设置项setting.proto 中的MCPSettingmessage MCPSetting { // Capability is the ceiling: a session runs at this level or lower. enum Capability { CAPABILITY_UNSPECIFIED 0; // MCP connections are rejected. DISABLED 1; // Was MCP_METADATA_ONLY; the Metadata-only tier is deferred out of the design. reserved 2; // MCP may inspect metadata and run read-only queries. (Enforced from P1b.) READ_ONLY 3; // MCP may perform mutations, still bounded by the users RBAC. READ_WRITE 4; } Capability capability 1; // Whether a request that arrived over MCP stops applying the callers own // unmasking provisioning. bool ignore_masking_exemptions 2; }通过控制台设置的操作路径对应 MCPAccessPolicySection.tsx打开工作区的 MCP Integration 页面找到Access policy区块。该区块的描述是 The most any MCP session may do in this workspace. Every session is also capped by the connecting users own permissions.点击Edit policy。此按钮由PermissionGuard保护需要bb.settings.set权限普通成员看不到可用的编辑入口。在三张模式卡片中选择目标模式Disabled / Read-only / Read-write保存按钮仅在表单有实际改动时启用。可选同页有Ignore masking exemptions开关。开启后MCP 请求会忽略该用户的 masking 豁免与 access grant 携带的 unmask——有 masking 策略的列对 agent 保持脱敏。注意它的边界它只在 Bytebase 本身做 masking 的引擎上有效where Bytebase does not mask, this changes nothing若工作区没有 Data masking 许可页面会直接提示 Data masking is not licensed for this workspace, so nothing is masked whatever this is set to.点击Save policy。保存成功后页面提示 Policy saved. {模式} applies to every sessions next request.保存走的 API 是UpsertSettingname为MCP设置项更新value.mcp.capability模式变化时和value.mcp.ignore_masking_exemptions开关变化时两个 mask 路径由 mcpPolicy.ts 中的MCP_CAPABILITY_CHOICES限定可选值就是上述三种。验证设置已生效文档与实现给出的可核对点按下面顺序检查设置页状态行保存后Access policy 区块的 In force 行会显示模式徽章——Read-only 为 success绿、Read-write 为 warning黄、Disabled 为 destructive红。这是文档明确的展示规则设计文档 D3。连接层面设为 Disabled 后任何 MCP 连接被拒绝界面上只剩一句 No MCP session can connect to this workspace.。方法层面在 Read-only 下让 agent 尝试一个 WRITE 操作例如创建 sheet会收到PermissionDenied错误文案形如 procedureis a WRITE method and this workspaces MCP capability ceiling is READ_ONLY, which serves READ methods. Ask a workspace admin to raise the MCP ceiling in the workspace settings, or perform this action signed in to the Bytebase console instead。FORBIDDEN/EXCLUDED 方法的拒绝文案会附带具体原因。审计层页面底部常驻一句 MCP policy denials are recorded in the audit log. 策略拒绝policy denial无论目标方法是否带审计注解都会被记录可以在审计日志中核对拒绝记录确认门禁在按预期拦截。两点关于生效时机的文档事实天花板是逐请求实时读取、无缓存的因此天花板变化作用于每个正在运行的会话的下一个请求agent 已被放行的工作会执行完页面文案A ceiling change applies to the next request of every running session. Work an agent has already been admitted to runs to completion.。收紧是立即的但已放行的操作不会被中途撤销。另外两个边界情况设置页会明确报出存储了当前版本无法解析的 capability 值时所有 MCP 连接被拒绝页面显示 The stored access policy cannot be read 并要求选择一个模式后保存来修复读取失败read-failed时所有 MCP 连接同样被拒绝先刷新重试持续失败则说明存储的策略行无法解析需要运维直接修复该行。限制与不能做的事三种模式都不能让 agent批准 issue四个审批方法 FORBIDDEN、管理工作区EXCLUDED、接触任何凭证类方法FORBIDDEN。这一层与模式无关是 MCP 边界的底线。模式不是权限effective ceiling ∩ RBAC。Read-write 下的 agent 仍需要连接用户本身具备对应权限才能完成写操作反过来一个全权限用户在 Read-only 下同样无法写入。Read-only 的只读深度因引擎而异PostgreSQL、CockroachDB、Redshift 之外只靠语句分类保证分类为读的语句仍可能调用有写副作用的函数。Read-write 下导出Export意味着查询结果可以离开 Bytebase如果数据安全要求数据不出工作区Read-only 是文档给出的边界。目前只有这三种预设模式自定义访问策略在设计文档中列为 out of scope后续会让能力表的行变成可勾选的项卡片变成预设按钮。设置本身就是一个随时可回退的开关任何时候都可以把 Read-write 收紧回 Read-only 或 Disabled作用于所有运行中会话的下一个请求且收紧动作本身产生的拒绝会进入审计日志便于事后核对谁在什么时候触到了边界。【免费下载链接】bytebaseDatabase governance built for humans and agents — controlling changes and access across every major database.项目地址: https://gitcode.com/GitHub_Trending/by/bytebase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

单相有源电力滤波器综合补偿系统设计|毕业设计项目|单片机项目|物联网设计|毕设 2026/9/15 18:11:19

单相有源电力滤波器综合补偿系统设计|毕业设计项目|单片机项目|物联网设计|毕设

一、項目介绍 摘 要 电力电子技术不断发展,各种非线性负载被愈加普遍地应用到电网当中,这引发的谐波污染问题变得越发严峻,有源电力滤波器属于一种先进的谐波补偿设备,它能够及时监测到由负载产生的谐波电流,并执行补…

阅读更多 →
如何设计限流器:从固定窗口到分布式部署的完整指南(system-design-notes 第4章) 2026/9/15 18:11:19

如何设计限流器:从固定窗口到分布式部署的完整指南(system-design-notes 第4章)

如何设计限流器:从固定窗口到分布式部署的完整指南(system-design-notes 第4章) 【免费下载链接】system-design-notes Notes of the book System Desgin Interview - An Insiders Guide 项目地址: https://gitcode.com/GitHub_Trending/sy…

阅读更多 →
多传感器融合的智能车位检测与引导控制系统的设计与实现|毕业设计项目|毕设项目|单片机项目|物联网专业|毕业设计 2026/9/15 18:11:19

多传感器融合的智能车位检测与引导控制系统的设计与实现|毕业设计项目|毕设项目|单片机项目|物联网专业|毕业设计

一、项目介绍 摘 要 针对城市“停车难”状况,本课题规划出一套依靠多传感器融合的智能车位检测及引导控制系统,该系统把STM32F103C8T6当作主控芯片,整合了红外传感器,限位行程开关,TFT彩屏,语音模块&#…

阅读更多 →
es-toolkit/compat 的 drop 函数:从 Lodash 无缝迁移的数组头部裁剪完整指南 2026/9/15 18:11:19

es-toolkit/compat 的 drop 函数:从 Lodash 无缝迁移的数组头部裁剪完整指南

es-toolkit/compat 的 drop 函数:从 Lodash 无缝迁移的数组头部裁剪完整指南 【免费下载链接】es-toolkit A modern JavaScript utility library thats 2-3 times faster and up to 97% smaller, a major upgrade to lodash. 项目地址: https://gitcode.com/GitHu…

阅读更多 →
CTF杂项WAV音频隐写实战:从频谱图到LSB提取Flag 2026/9/15 18:11:19

CTF杂项WAV音频隐写实战:从频谱图到LSB提取Flag

拿到一个WAV音频文件,先别急着戴上耳机去听。CTF杂项题里的音频,尤其是带“噪音”标签的那种,你戴着耳机循环半小时,听到的依然只是滋滋啦啦的白噪音,但恼人的是,Flag就藏在这段噪音里。我见过不少新手卡在…

阅读更多 →
DINOv3 卫星图像分析:零样本分类 81.1%,分割 75.0% 2026/9/15 18:08:19

DINOv3 卫星图像分析:零样本分类 81.1%,分割 75.0%

DINOv3 卫星图像分析:零样本分类 81.1%,分割 75.0% 【免费下载链接】dinov3 Reference PyTorch implementation and models for DINOv3 项目地址: https://gitcode.com/GitHub_Trending/di/dinov3 DINOv3 是 Meta AI 推出的自监督视觉基础模型&am…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞