mssql_session ресурс
Используйте ресурс проверки аудита Chef InSpec, чтобы протестировать SQL-команды, выполняемые на базе данных Microsoft SQL.
Доступность
Установка
Этот ресурс распространяется вместе с самим Chef InSpec. Вы можете использовать его автоматически.
Версия
Этот ресурс стал доступен в версии v1.24.0 InSpec.
Синтаксис
Блок ресурса mssql_session объявляет имя пользователя и пароль для сессии, а затем команду, которую нужно выполнить:
describe mssql_session(user: 'username', password: 'password').query('QUERY').row(0).column('result') do
its('value') { should eq('') }
end
где
-
mssql_sessionобъявляет имя пользователя и пароль с разрешением на выполнение запроса. Пропуск параметров имени пользователя или пароля приводит к использованию аутентификации Windows как пользователя, от имени которого выполняется Chef InSpec. Вы также можете необязательно указать имя хоста и экземпляра. Если они опущены, по умолчанию они будут host: localhost и стандартный экземпляр. -
query('QUERY')содержит запрос, который необходимо выполнить -
its('value') { should eq('') }сравнивает результаты запроса с ожидаемым результатом в тесте
Примеры
В следующих примерах показано, как использовать этот ресурс проверки аудита Chef InSpec.
Проверка соответствия баз данных
sql = mssql_session(user: 'my_user', password: 'password')
describe sql.query("SELECT SERVERPROPERTY('ProductVersion') as result").row(0).column('result') do
its("value") { should cmp > '12.00.4457' }
end
Проверка с использованием аутентификации Windows
sql = mssql_session
describe sql.query("SELECT SERVERPROPERTY('ProductVersion') as result").row(0).column('result') do
its("value") { should cmp > '12.00.4457' }
end
Проверка определённого хоста и экземпляра
sql = mssql_session(user: 'my_user', password: 'password', host: 'mssqlserver', instance: 'foo')
describe sql.query("SELECT SERVERPROPERTY('ProductVersion') as result").row(0).column('result') do
its("value") { should cmp > '12.00.4457' }
end
Проверка определённой базы данных
sql = mssql_session(user: 'my_user', password: 'password', db_name: 'test')
describe sql.query("SELECT Name AS result FROM Product WHERE ProductID == 1").row(0).column('result') do
its("value") { should eq 'foo' }
end
Matchers
Полный список доступных matchers можно найти на нашей странице matchers.
© 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/mssql_session/