我正在尝试自动安装 SQL Server 2016 Express。
我有一本厨师食谱,用于使用巧克力包安装 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 用户获得与正常安装相同的巧克力安装?
很多天后我发现了问题。以本地管理用户身份运行 Chocolatey,而不是SYSTEM
.
Why:
由于 WinRM 协议的限制,如果通过 WinRM 执行命令,则不会安装 Chocolatey 包。
常见的解决方法是在计划任务中运行 Chef/chocolatey。
不幸的是,计划任务运行为SYSTEM
用户。结果是 MSSQL 将只允许 SYSTEM 用户运行管理命令。
解决方案是在计划任务中以本地系统帐户(而不是 SYSTEM)运行 Chocolatey。或者使用 RDP 登录系统并直接运行 Chocolatey 命令(而不是通过 winrm)。
如何以(非系统)提升用户身份运行厨师测试厨房的示例
transport:
name: winrm
elevated: true
elevated_username: vagrant
elevated_password: vagrant
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)