SQL Server 在没有 SQL Server 配置管理器的情况下启用文件流(因此仅通过命令行)

Xax*_*xum 4 sql-server filestream

我在 Windows Server 2019 Core 安装上安装了 SQL Server 2017,没有 GUI。我们的一位用户想要使用 Filestream。我尝试遵循此设置但是,由于它需要 SSCM,所以我无法完成该部分。我可以在 SSMS 中启用,但是无法设置文件位置等,因此在设置页面上执行存储过程命令时出现此错误:

FILESTREAM 功能无法初始化。操作系统管理员必须使用配置管理器在实例上启用 FILESTREAM。

当我通过计算机管理窗口远程连接到 SSCM 并尝试打开服务时,不会显示任何服务。我可以访问网络选项,但不能访问服务,所以这些选项可能无法远程工作?核心安装和我尝试使用的 GUI 版本之间的防火墙已关闭。

有人有办法像通过 SSCM 一样远程启用 Filestream 并设置所需的参数吗?

提前致谢。

Ran*_*gen 5

注册表编辑器

您可以更改实例文件流设置的注册表设置。下面是一个示例及其master..xp_regwrite过程。

如果实例的文件流被禁用,则显示:

在此输入图像描述

用配置管理器查看也是如此:

在此输入图像描述


通过 SSMS/SQLCMD/...

因此,您可以更改EnableLevelFilestream 注册表项的值。MSSQL14.MSSQLSERVER请记住在下面的示例中更改为您的 sql server 实例。

EXEC master..xp_regwrite
'HKEY_LOCAL_MACHINE',
'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQLServer\Filestream',
'EnableLevel',
'REG_DWORD',
3
Run Code Online (Sandbox Code Playgroud)

这会将值更改为完全文件流访问:

在此输入图像描述

这可以通过配置管理器进行验证:

在此输入图像描述

与往常一样,更改注册表的风险由您自行承担。备份注册表也是一个好主意。

更改这些设置后,您必须重新启动 sql server 实例并配置filestream_access_level.


额外信息

2 级:

EXEC master..xp_regwrite
'HKEY_LOCAL_MACHINE',
'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQLServer\Filestream',
'EnableLevel',
'REG_DWORD',
2
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

正如预期的那样,级别 1:

EXEC master..xp_regwrite
'HKEY_LOCAL_MACHINE',
'SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQLServer\Filestream',
'EnableLevel',
'REG_DWORD',
1
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述