gpt4 book ai didi

Multi-Tenancy 应用程序中的 Oracle 行级安全性/新记录的默认值

转载 作者:行者123 更新时间:2023-12-02 07:15:09 27 4
gpt4 key购买 nike

任务

改造现有应用程序以使用 Multi-Tenancy 方法。应可以创建租户,并且每个用户的 session 应准确引用一个事件租户。每个租户应该只能查看和更新​​他的数据库模式分区。

方法

  • 创建包含租户 ID 的 Oracle 应用程序上下文
  • 将租户 ID 列添加到应限定范围的任何表中
  • 创建一个谓词函数,为 SELECT、INSERT、UPDATE 和删除返回“tenant_id = sys_context('tenant_context', 'tenant_id')”
  • 通过 dbms_rls 添加适当的策略来注册谓词函数

这就像一个魅力,无需触及现有的 SELECT、UPDATE 和 DELETE 应用程序

问题

插入时,tenant_id 列未设置并且出现安全异常。有没有像谓词函数一样流畅的方法来始终设置安全相关字段?我不想向 300 多个表添加触发器。

最佳答案

有时提出问题就能找到答案。我不知道您可以在列的默认值中使用非常量表达式,因此

alter table XXX
add column tenant_id default sys_context('tenant_context', 'tenant_id');

确实解决了我的问题。

关于 Multi-Tenancy 应用程序中的 Oracle 行级安全性/新记录的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262506/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com