Spec-Zone.ru › Chef 16

Ресурс postgres_session

[редактировать на GitHub]

Используйте ресурс аудита Chef InSpec postgres_session для проверки SQL-команд, выполняемых против базы данных PostgreSQL.

Доступность

Установка

Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.

Версия

Этот ресурс стал доступен в версии InSpec v1.0.0.

Синтаксис

Блок ресурса postgres_session объявляет имя пользователя и пароль для сеанса, а затем команду, которую необходимо выполнить:

# Create a PostgreSQL session:
sql = postgres_session('username', 'password', 'host', 'port')

# default values:
#   username: 'postgres'
#   host: 'localhost'
#   port: 5432

# Run an SQL query with an optional database to execute
sql.query('sql_query', ['database_name'])`

Полный пример:

sql = postgres_session('username', 'password', 'host', 'port')
describe sql.query('SELECT * FROM pg_shadow WHERE passwd IS NULL;') do
  its('output') { should eq '' }
end

где its('output') { should eq '' } сравнивает результаты запроса с ожидаемым результатом в тесте

Примеры

Следующие примеры показывают, как использовать этот ресурс аудита Chef InSpec.

Проверка пароля PostgreSQL shadow

sql = postgres_session('my_user', 'password', '192.168.1.2', 5432)

describe sql.query('SELECT * FROM pg_shadow WHERE passwd IS NULL;', ['testdb']) do
  its('output') { should eq('') }
end

Проверка на наличие небезопасных записей в базе данных

describe postgres_session('my_user', 'password').query('SELECT count (*)
              FROM pg_language
              WHERE lanpltrusted = \'f\'
              AND lanname!=\'internal\'
              AND lanname!=\'c\';', ['postgres']) do
  its('output') { should eq '0' }
end

Сопоставители

Полный список доступных сопоставителей см. на нашей странице сопоставителей.

Вывод

Сопоставитель output проверяет результаты запроса:

its('output') { should eq(/^0/) }

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/inspec/resources/postgres_session/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API