0

我正在尝试使用 inspec 验证(mssql)Sql 身份验证模式“集成”。我找不到任何参考。如何使用 ruby​​ 传递 sql 查询,因为我有显示当前 sql 身份验证模式的 sql 查询。

4

1 回答 1

1

您可以使用 powershell 检查身份验证模式,请参阅本文powershell以获取有关代码的参考以及有关如何加载程序集的文章:Microsoft.SqlServer.Management.Smo

# Connect to the instance using SMO $s = new-object 
('Microsoft.SqlServer.Management.Smo.Server') 'MyServer\MyInstance'
[string]$nm = $s.Name [string]$mode = $s.Settings.LoginMode

write-output "Instance Name: $nm"
write-output "Login Mode: $mode"

因此,您可以编写一个powershell测试来实现您想要的:

control 'sql auth type' do
  impact 1.0
  ps_script = <<-EOH
  [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
  $s = new-object ('Microsoft.SqlServer.Management.Smo.Server') $env:COMPUTERNAME
  [string]$nm = $s.Name
  [string]$mode = $s.Settings.LoginMode

  write-output $mode
  EOH

  describe powershell(ps_script) do
    its('stdout') { should match (/Integrated/)}
  end
end
于 2018-06-07T03:03:15.770 回答