安装了女巫巧克力时,SQL Server无法授权用户(通过厨师)

spu*_*der 3 sql-server chef-infra chocolatey

我正在尝试自动安装SQL Server 2016 Express.

我有一个厨师食谱,使用chocolatey软件包安装SQL Server Express.

与厨师资源相同的命令

chocolatey_package 'sql-server-express' do
  action :install
  options '--cachelocation c:\temp\choco'
end
Run Code Online (Sandbox Code Playgroud)

等效的PowerShell命令

choco install sql-server-express --cachelocation c:\temp\choco
Run Code Online (Sandbox Code Playgroud)

如果我使用安装向导正常安装SQL Server Express,我可以验证和创建/修改数据库没问题.

如果我使用chocolatey/chef安装SQL Server Express,我将无法创建或修改数据库.

尝试创建新数据库时出错

数据库'master'中的CREATE DATABASE权限被拒绝

在此输入图像描述

尝试修改现有数据库时出错

服务器主体"Foo\Bar"无法在当前安全上下文中访问数据库"foobar"

在此输入图像描述

我已经尝试以"sa"用户身份登录.混合身份验证未启用,我无法启用它.

如何让SQL Server Express用户的巧克力安装与普通安装相同?

spu*_*der 5

好几天后,我发现了这个问题.作为本地管理用户运行chocolatey,而不是SYSTEM.

为什么:

如果由于WinRM协议的限制而在WinRM上执行命令,则不会安装chocolatey软件包.

常见的工作是在计划任务中运行厨师/巧克力.

不幸的是,计划任务以SYSTEM用户身份运行.结果是MSSQL只允许SYSTEM用户运行管理命令.

解决方案是在计划任务内运行巧克力作为本地系统帐户(而不是SYSTEM).或者使用RDP登录系统并直接运行chocolatey命令(而不是通过winrm).

如何将厨师测试厨房作为(非SYSTEM)提升用户运行的示例

transport:
  name: winrm
  elevated: true
  elevated_username: vagrant
  elevated_password: vagrant
Run Code Online (Sandbox Code Playgroud)