安装后,SQL Server无法授权用户(通过厨师)

时间:2017-10-03 21:36:08

标签: sql-server chef chocolatey

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

我有一本厨师食谱,可以使用chocolatey软件包安装SQL Server Express。

与厨师资源相同的命令

chocolatey_package 'sql-server-express' do
  action :install
  options '--cachelocation c:\temp\choco'
end

等效的PowerShell命令

choco install sql-server-express --cachelocation c:\temp\choco

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

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

尝试创建新数据库时出错

  

在数据库' master'

中拒绝CREATE DATABASE权限

enter image description here

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

  

服务器主管" Foo \ Bar"无法访问数据库" foobar"在当前的安全背景下

enter image description here

我已尝试登录“' sa'用户。混合身份验证未启用,我无法启用它。

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

1 个答案:

答案 0 :(得分: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