我是否可以找到只知道SID的Oracle架构用户名和密码?

我是否可以找到只知道SID的Oracle架构用户名和密码?,oracle,Oracle,我有一个在Linux机器上运行的应用程序。应用程序使用Oracle作为后端 我不知道oracle用于运行应用程序的用户名和密码或任何模式。我只知道神谕席德。我可以知道运行应用程序所需的oracle用户名和密码吗?没有更多信息,不行 想象一下,只有知道SID,以及数据库运行服务器的IP地址,才能获得用户名和密码。这意味着闯入世界上任何一个数据库都是微不足道的。SID是一个。这将是一个相当不敏感的密码。但是连接到数据库也需要一个SID,因此它必须广泛分布。如果这就是入侵数据库所必需的一切,那么就没有

我有一个在Linux机器上运行的应用程序。应用程序使用Oracle作为后端


我不知道oracle用于运行应用程序的用户名和密码或任何模式。我只知道神谕席德。我可以知道运行应用程序所需的oracle用户名和密码吗?

没有更多信息,不行


想象一下,只有知道SID,以及数据库运行服务器的IP地址,才能获得用户名和密码。这意味着闯入世界上任何一个数据库都是微不足道的。SID是一个。这将是一个相当不敏感的密码。但是连接到数据库也需要一个SID,因此它必须广泛分布。如果这就是入侵数据库所必需的一切,那么就没有人会将Oracle用于任何远程重要的事情。

没有更多的信息,也不会


想象一下,只有知道SID,以及数据库运行服务器的IP地址,才能获得用户名和密码。这意味着闯入世界上任何一个数据库都是微不足道的。SID是一个。这将是一个相当不敏感的密码。但是连接到数据库也需要一个SID,因此它必须广泛分布。如果这就是入侵数据库所必需的一切,那么就没有人会将Oracle用于任何远程重要的事情。

没有更多的信息,也不会


想象一下,只有知道SID,以及数据库运行服务器的IP地址,才能获得用户名和密码。这意味着闯入世界上任何一个数据库都是微不足道的。SID是一个。这将是一个相当不敏感的密码。但是连接到数据库也需要一个SID,因此它必须广泛分布。如果这就是入侵数据库所必需的一切,那么就没有人会将Oracle用于任何远程重要的事情。

没有更多的信息,也不会


想象一下,只有知道SID,以及数据库运行服务器的IP地址,才能获得用户名和密码。这意味着闯入世界上任何一个数据库都是微不足道的。SID是一个。这将是一个相当不敏感的密码。但是连接到数据库也需要一个SID,因此它必须广泛分布。如果这是入侵数据库所必需的全部,那么没有人会使用Oracle进行任何远程重要的操作。

不,使用机器的SID和地址,您可以远程执行的唯一操作是连接到TNS侦听器并查询服务(取决于侦听器配置)

否则,出于安全考虑,我将出售我的Oracle许可证。:)

如果您在计算机本身上,除非您在数据库上有用户帐户,或者属于dba或osoper组等,否则将无法连接到数据库。不是出于黑客的兴趣,而是出于信息目的,如果您有一个操作系统帐户,您可能看到的唯一东西是命令字符串中带有凭据的sqlplus、sqlldr或导出会话(这就是为什么在非专用计算机上,您应该始终以提示模式登录到这些实用程序,而不是通过在命令行上传递凭据)

OP更新了问题:

从操作系统帐户以sysdba身份登录Oracle,并在应用程序处于活动状态时查询v$session视图。如果应用程序正在登录,它将显示在v$会话中。如果这样做有困难,但碰巧知道表名,请查询SYS.DBA_TABLES以获取表名,并注意OWNER列。或者查看V$SQLAREA或显示系统上当前或最近SQL查询的其他动态视图之一

例如:

root# su - oracle
oracle@linuxdb ~]$ sqlplus / as sysdba
SQL> select username, status, program from v$session where username is not null;  
您可以查看或导出架构,只要知道是哪一个,无需应用程序密码。重置密码后,您将无法恢复密码。相反,我会设置系统密码,然后运行expdp(或exp)并导出模式。比如:

oracle@linuxdb ~]$ expdp system/manager schemas=appschema <other parameters here...>
oracle@linuxdb~]$expdp系统/管理器架构=appschema

不,使用机器的SID和地址,您可以远程执行的唯一操作是连接到TNS侦听器并查询服务(取决于侦听器配置)

否则,出于安全考虑,我将出售我的Oracle许可证。:)

如果您在计算机本身上,除非您在数据库上有用户帐户,或者属于dba或osoper组等,否则将无法连接到数据库。不是出于黑客的兴趣,而是出于信息目的,如果您有一个操作系统帐户,您可能看到的唯一东西是命令字符串中带有凭据的sqlplus、sqlldr或导出会话(这就是为什么在非专用计算机上,您应该始终以提示模式登录到这些实用程序,而不是通过在命令行上传递凭据)

OP更新了问题:

从操作系统帐户以sysdba身份登录Oracle,并在应用程序处于活动状态时查询v$session视图。如果应用程序正在登录,它将显示在v$会话中。如果这样做有困难,但碰巧知道表名,请查询SYS.DBA_TABLES以获取表名,并注意OWNER列。或者查看V$SQLAREA或显示系统上当前或最近SQL查询的其他动态视图之一

例如:

root# su - oracle
oracle@linuxdb ~]$ sqlplus / as sysdba
SQL> select username, status, program from v$session where username is not null;  
您可以查看或导出架构,只要知道是哪一个,无需应用程序密码。重置密码后,您将无法恢复密码。相反,我会设置系统密码,然后运行expdp(或exp)并导出模式。比如:

oracle@linuxdb ~]$ expdp system/manager schemas=appschema <other parameters here...>
oracle@linuxdb~]$expdp系统/管理器架构=appschema

不,您唯一可以用SID和地址远程执行的操作