Sha256: 5244f640aa83815ae09d599d29a7d07254f0069012ccf289af7e269ef9127d2a

Contents?: true

Size: 1.25 KB

Versions: 13

Compression:

Stored size: 1.25 KB

Contents

require "inspec/resources/oracledb_session"

module Inspec::Resources
  class OracledbConf < Inspec.resource(1)
    name "oracledb_conf"
    supports platform: "unix"
    supports platform: "windows"
    desc "Use the oracledb_conf InSpec audit resource to test the database settings for Oracle DB"
    example <<~EXAMPLE
      describe oracledb_conf(user: 'USER', password: 'PASSWORD') do
        its("audit_sys_operations") { should cmp "true" }
        its("sql92_security") { should cmp "true" }
      end
    EXAMPLE

    attr_reader :oracledb_session

    def initialize(opts = {})
      @oracledb_session = inspec.oracledb_session(opts)
      @opts = opts
    end

    def method_missing(name)
      setting = name.to_s.upcase
      determine_database_setting(setting)
    end

    def to_s
      "Oracle DB Configuration"
    end

    def resource_id
      @opts[:user] || ""
    end

    private

    def determine_database_setting(setting)
      sql_query = oracledb_session.query("SELECT UPPER(VALUE) AS UPPER_VALUE FROM V$SYSTEM_PARAMETER WHERE UPPER(NAME) = '#{setting}'")
      sql_query.row(0).column("UPPER_VALUE").value
    rescue => e
      raise Inspec::Exceptions::ResourceFailed, "Errors fetching database settings for Oracle database: #{e}"
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
inspec-core-6.8.24 lib/inspec/resources/oracledb_conf.rb
inspec-core-5.22.65 lib/inspec/resources/oracledb_conf.rb
inspec-core-6.8.11 lib/inspec/resources/oracledb_conf.rb
inspec-core-5.22.58 lib/inspec/resources/oracledb_conf.rb
inspec-core-5.22.55 lib/inspec/resources/oracledb_conf.rb
inspec-core-6.8.1 lib/inspec/resources/oracledb_conf.rb
inspec-core-5.22.40 lib/inspec/resources/oracledb_conf.rb
inspec-core-6.6.0 lib/inspec/resources/oracledb_conf.rb
inspec-core-5.22.36 lib/inspec/resources/oracledb_conf.rb
inspec-core-5.22.29 lib/inspec/resources/oracledb_conf.rb
inspec-core-5.22.3 lib/inspec/resources/oracledb_conf.rb
inspec-core-5.21.29 lib/inspec/resources/oracledb_conf.rb
inspec-core-5.18.14 lib/inspec/resources/oracledb_conf.rb