我正在 Windows 2003 上配置一个 10g Express 数据库,它将作为公共 Web 服务器的后端。强化数据库还有许多其他事情要做,但一个好的起点是用户权限。我知道用户需要连接和创建会话权限。所有的表、过程和包都归他们所有。
在他们自己的架构上进行基本 CRUD 操作是否需要任何其他权限?
我正在 Windows 2003 上配置一个 10g Express 数据库,它将作为公共 Web 服务器的后端。强化数据库还有许多其他事情要做,但一个好的起点是用户权限。我知道用户需要连接和创建会话权限。所有的表、过程和包都归他们所有。
在他们自己的架构上进行基本 CRUD 操作是否需要任何其他权限?
无需授予
CONNECT
角色。在 10.2 中,Oracle 最终减少了分配给该角色的权限集,CREATE SESSION
但在以前的版本中,该角色拥有的权限比名称所暗示的要多得多。创建一个用户会更安全——一个拥有表、过程等但没有
CREATE SESSION
特权,另一个对应用程序可以用来连接到数据库的各种对象具有适当的特权。这允许您执行诸如阻止应用程序用户删除表或从记录表中删除数据之类的操作。此外,表的所有者将需要在将要在其中创建用户表的任何表空间或表空间上获得配额。您可以授予所有者
UNLIMITED TABLESPACE
特权,但在任何情况下授予他们较小的配额更安全他们实际需要使用的表空间。