【问题标题】:Is there a way to query the AWS RDS Oracle DB Identifier from SQL?有没有办法从 SQL 查询 AWS RDS Oracle DB 标识符?
【发布时间】:2020-08-28 17:37:09
【问题描述】:

当您在 RDS 中创建数据库时,您需要为其命名(特别是“数据库标识符”)。有没有办法从给定的实例中查询 SQL 并获取该数据库标识符?

【问题讨论】:

    标签: sql oracle amazon-web-services plsql amazon-rds


    【解决方案1】:

    试试SYS_CONTEXT() 函数——它可以返回各种有趣的东西,包括数据库名称:

    select sys_context('USERENV', 'DB_NAME') from dual;
    

    有关可用于第二个参数的所有其他值,请参阅documentation。这是一个既可以从上述 SQL 查询调用,也可以从 PL/SQL 调用的函数。

    【讨论】:

    • DB_NAME 返回 SID,这不是我想要的。不幸的是,我已经尝试了所有的 SYSCONTEXT,AWS 并没有将它们设置为对我有用的任何东西。所有与 IP 相关的调用都返回 192 或 10 网络上的不可路由地址。我想访问 DNS CNAME 或 AWS DB 标识符。
    • 呃!我感到震惊!我可以看到 AWS 限制了 SYS_CONTEXT() 的一些参数。我猜他们过于小心以避免 SQL 注入问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    相关资源
    最近更新 更多