Oracle数据库限制

时间:2014-09-04 03:25:41

标签: oracle database-administration

我想知道数据库管理员是否可以做类似的事情

  1. 授予对现有数据库的只读权限。
  2. 但是,用户应该能够创建新表(甚至临时表也可以。)
  3. 用户具有对他创建的所有新临时表的写访问权限,当会话关闭时,这些临时表将消失。
  4. 我知道第一点是可能的,但是可以将第2点和第3点中指定的权限授予只对现有数据库表具有只读访问权限的人。

1 个答案:

答案 0 :(得分:1)

未在数据库或模式上授予权限,仅授予对象权限。您当然可以创建数据库用户,并授予该用户SELECT访问您希望他访问的数据库的每个模式中的每个表的权限。如果创建了新对象,则需要向这些用户授予对这些新对象的权限。然后,您可以为该用户提供CREATE TABLE权限以及表空间上的适当配额,以允许用户创建新表。这主要是照顾#1和#2。

对于#3,Oracle没有表,其定义是特定会话的本地,因此您不能在会话结束时删除表。我想您可以创建一个注销触发器,通过dbms_job提交作业,以便在用户注销后立即删除用户架构中的所有表。然而,这将是非常不寻常的,所以我强烈建议你避免这种情况,除非你做了一些非常不寻常的事情(例如,sqlfiddle,做了很多奇怪的事情,因为使用Oracle是一种非常奇怪的方式数据库)。