sql-server - SQL Server 在安装 witch chocolatey 时无法授权用户(通过 chef)

标签 sql-server chef-infra chocolatey

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

我有一本使用巧克力包安装 SQL Server Express 的 Chef Recipe 。

与 Chef 资源相同的命令

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,我将无法创建或修改数据库。

尝试创建新数据库时的错误

CREATE DATABASE permission denied in database 'master'

enter image description here

尝试修改现有数据库时的错误

The server principal "Foo\Bar" is not able to access the database "foobar" under the current security context

enter image description here

我试过以“sa”用户身份登录。混合身份验证未启用,我无法启用它。

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

最佳答案

很多天后我发现了问题。 以本地管理用户身份运行 chocolatey,而不是 SYSTEM

为什么:

由于 WinRM 协议(protocol)的限制,如果通过 WinRM 执行命令,将不会安装巧克力包。

常见的解决方法是在计划任务中运行 chef/chocolatey。

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

解决方案是以本地系统帐户(不是 SYSTEM)在计划任务中运行 chocolatey。或者使用 RDP 登录系统并直接运行 chocolatey 命令(而不是通过 winrm)。

如何以(非 SYSTEM)提升用户身份运行 Chef 测试厨房的示例

transport:
  name: winrm
  elevated: true
  elevated_username: vagrant
  elevated_password: vagrant

关于sql-server - SQL Server 在安装 witch chocolatey 时无法授权用户(通过 chef),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46553807/

相关文章:

linux - Chef 管理在 Amazon Linux 上运行但不可访问。安全组端口开放

windows - 如何使用chocolatey安装特定版本的Windows sdk?

mysql - 为什么这个查询只返回 1 行?

sql-server - 将文件流添加到现有表列

chef-infra - Knife bootstrap命令不提示密码

chef-infra - Chef : Strange Erlang Error when Trying to Run Chef-Solo

chocolatey - 如何使用 Chocolatey 安装 DotNet4.0?

windows - 为什么在 Windows 10 上安装 Chocolatey 期间 7-Zip 失败?

sql - 在 sql 中只获取字母数字行?

sql - 必须有一种方法可以删除 SQL Server 中的数据而不会使日志过载