Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 10g—一个不可见的列?_Oracle - Fatal编程技术网

Oracle 10g—一个不可见的列?

Oracle 10g—一个不可见的列?,oracle,Oracle,是否可以在Oracle 10g数据库中“隐藏”列,或阻止数据被完全插入?我们希望现有的INSERT语句仍能正常工作,但不希望为特定列插入信息。此外,列屏蔽或任何类型的加密都不是首选 不确定是否可能,但请提前感谢 使用Oracle功能虚拟专用数据库(VPD),您可以定义哪些用户可以更改,哪些用户可以选择列。虚拟专用数据库也称为细粒度访问控制(FGAC) 使用Oracle功能虚拟专用数据库(VPD),您可以定义哪些用户可以更改,哪些用户可以选择列。虚拟专用数据库也称为细粒度访问控制(FGAC) 如果

是否可以在Oracle 10g数据库中“隐藏”列,或阻止数据被完全插入?我们希望现有的INSERT语句仍能正常工作,但不希望为特定列插入信息。此外,列屏蔽或任何类型的加密都不是首选


不确定是否可能,但请提前感谢

使用Oracle功能虚拟专用数据库(VPD),您可以定义哪些用户可以更改,哪些用户可以选择列。虚拟专用数据库也称为细粒度访问控制(FGAC)

使用Oracle功能虚拟专用数据库(VPD),您可以定义哪些用户可以更改,哪些用户可以选择列。虚拟专用数据库也称为细粒度访问控制(FGAC)

如果您只需要停止插入数据,则可以为每行创建一个“插入前”触发器,在保存行之前清除插入到列中的任何值


在特定情况下,您还可以通过安全性(以及视图)执行各种其他操作来防止特定用户进行插入/选择,但这些操作可能不会让现有插入继续工作。

如果您只需要停止插入数据,您可以为每个行创建一个BEFORE INSERT触发器,该触发器在保存行之前清除插入到列中的任何值


在特定情况下,您还可以通过安全性(以及视图)执行各种其他操作来防止特定用户进行插入/选择,但这些操作可能不会让现有插入继续工作。

重命名原始表,使用原始表名创建视图,但只选择要显示的列


参照现有表重新编译代码。

重命名原始表,使用原始表名创建视图,但仅选择要显示的列


参照现有表重新编译代码。

只为允许更新或插入的每个项目设置授权怎么样

grant select on emp to scott;

grant update (column1, column2), insert (column1) on emp to scott

对允许更新或插入的每个项目设置授权怎么样

grant select on emp to scott;

grant update (column1, column2), insert (column1) on emp to scott

我知道如何隐藏该列

  • 你使用

    闲置

    选项将一列或多列标记为未使用

  • 你用滴水器

    未使用的列

    选项删除标记为未使用的列

更改表emp
设置未使用(姓氏)

更改表emp
删除未使用的列


我知道如何隐藏该列

  • 你使用

    闲置

    选项将一列或多列标记为未使用

  • 你用滴水器

    未使用的列

    选项删除标记为未使用的列

更改表emp
设置未使用(姓氏)

更改表emp
删除未使用的列


这很可能是我们想要走的路线。。。您知道是记录原始插入事件,还是仅记录触发器事件?谢谢取决于你所说的“记录”是什么意思。。。就事务日志而言,它应该只是一个插入,其值由触发器修改(即,不会有两个条目),但我认为较低级别的审核日志或其他东西可能会在某个地方记录原始版本……您的问题是关于10g的,但知道12c添加了对不可见列的显式支持。例如,见。SQL*Plus 12c还有一个选项可以显示它们(所以毕竟不是很不可见):。这很可能是我们想要走的路线。。。您知道是记录原始插入事件,还是仅记录触发器事件?谢谢取决于你所说的“记录”是什么意思。。。就事务日志而言,它应该只是一个插入,其值由触发器修改(即,不会有两个条目),但我认为较低级别的审核日志或其他东西可能会在某个地方记录原始版本……您的问题是关于10g的,但知道12c添加了对不可见列的显式支持。例如,见。SQL*Plus 12c还有一个选项可以显示它们(所以毕竟不是很不可见):。