我正在尝试自动安装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权限
尝试修改现有数据库时出错
服务器主管" Foo \ Bar"无法访问数据库" foobar"在当前的安全背景下
我已尝试登录“' sa'用户。混合身份验证未启用,我无法启用它。
如何让SQL Server Express用户的巧克力安装与普通安装相同?
答案 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