Oracle Alter session set current_架构权限

Oracle Alter session set current_架构权限,oracle,session,privileges,alter,Oracle,Session,Privileges,Alter,基本上,我有一个java应用程序,它使用oracle作为数据源。现在,我的应用程序与一个用户连接,并使用连接的用户的模式创建表等 现在我有一个要求,我的应用程序也应该在另一个模式下工作 所以我不得不选择其他的选择 1-使用前缀更改我的表名,如 select * from other_schema.table 2-在运行任何查询之前更改会话,如 alter session set current_schema=other_schema 我很好奇dba是否有可能撤销alter会话特权 甲骨文文档

基本上,我有一个java应用程序,它使用oracle作为数据源。现在,我的应用程序与一个用户连接,并使用连接的用户的模式创建表等

现在我有一个要求,我的应用程序也应该在另一个模式下工作

所以我不得不选择其他的选择

1-使用前缀更改我的表名,如

select * from other_schema.table
2-在运行任何查询之前更改会话,如

alter session set current_schema=other_schema
我很好奇dba是否有可能撤销alter会话特权

甲骨文文档说

除非另有说明,否则执行此语句的其他操作不需要任何特权

请注意,我的应用程序用户将拥有其他\u架构的所有权限

我的应用程序将运行许多环境

因此,采用第一种方法看起来更安全,但可能需要很长时间


第二个更快,但看起来很棘手。

是的,他们会。有一个名为
CONNECT
的角色。此角色通常(取决于版本)为您提供两种系统权限:

  • 创建会话
  • alter session
当您的用户只有直接授予的
创建会话
权限时,您可以不使用任何
更改会话…
语句

Se Oracle文档:

请注意,设置事件需要ALTER SESSION权限。 很少有数据库用户需要alter session权限

SQL> ALTER SESSION SET EVENTS ........
其他alter session不需要alter session权限 命令

SQL> ALTER SESSION SET NLS_TERRITORY = FRANCE;

因此,这实际上取决于Oracle版本。

是的,他们是这样做的。有一个名为
CONNECT
的角色。此角色通常(取决于版本)为您提供两种系统权限:

  • 创建会话
  • alter session
当您的用户只有直接授予的
创建会话
权限时,您可以不使用任何
更改会话…
语句

Se Oracle文档:

请注意,设置事件需要ALTER SESSION权限。 很少有数据库用户需要alter session权限

SQL> ALTER SESSION SET EVENTS ........
其他alter session不需要alter session权限 命令

SQL> ALTER SESSION SET NLS_TERRITORY = FRANCE;

因此,这实际上取决于Oracle版本。

在10gR2中更改了连接角色。它以前拥有资源的大部分权限,但这些权限在10gR2中被撤销


我刚刚与一个只有CREATE SESSION的用户尝试了ALTER SESSION,这让我非常惊讶,至少在11.2.0.4中是这样的。

连接角色在10gR2中被更改了。它以前拥有资源的大部分权限,但这些权限在10gR2中被撤销

我刚刚和一个只有CREATE会话的用户尝试了altersession,这让我很惊讶,至少在11.2.0.4版本中是这样