我正在尝试自动安装SQLServer2016Express。
我有一本厨师食谱,可以用巧克力包安装。
与主厨资源相同的命令
chocolatey_package 'sql-server-express' do
action :install
options '--cachelocation c:\temp\choco'
end等效PowerShell命令
choco install sql-server-express --cachelocation c:\temp\choco如果我使用安装向导正常安装Server,则可以对数据库进行身份验证并创建/修改数据库。
如果安装带有巧克力/厨师的,则无法创建或修改数据库。
尝试创建新数据库时出现的错误
在数据库“主”中创建拒绝的数据库权限

试图修改现有数据库时的错误。
服务器主体"Foo\Bar“无法在当前安全上下文下访问数据库"foobar”

我试过以“sa”用户的身份登录。混合身份验证没有启用,我也无法启用它。
如何使Server用户的安装与正常安装相同?
发布于 2017-10-03 21:36:07
许多天后,我发现了这个问题。作为本地管理用户运行,而不是
为什么:
如果命令是通过WinRM执行的,由于WinRM协议的限制,巧克力包将不会安装。
常见的工作是在预定的任务中管理厨师/巧克力。
不幸的是,调度任务以SYSTEM用户的身份运行。结果是MSSQL只允许系统用户运行管理命令。
解决方案是将计划中的任务作为本地系统帐户(而不是系统)运行。或者使用RDP登录到系统并直接运行巧克力命令(而不是over )。
如何将厨师测试厨房作为(非系统)提升用户运行的示例
transport:
name: winrm
elevated: true
elevated_username: vagrant
elevated_password: vagranthttps://stackoverflow.com/questions/46553807
复制相似问题