无法复制从 SQL 服务器中创建的安全证书文件
Cannot copy a security certificate file created from within SQL Server
我正在尝试让 SQL Server Service Broker 跨数据库实例工作,并处于复制证书阶段(从发起者到目标,反之亦然)。我可以将证书备份到一个文件,但一旦创建,我就无法打开该文件或将其复制到任何其他位置。如果我尝试打开该文件,我会看到一个消息框,标题为 "Invalid Public Key Security Object File",消息为 "Access is denied.".
服务器在本地域内,并且是 运行 Windows Server 2008 R2 Enterprise with SP1。
这有效(但我无法对该文件执行任何操作):
BACKUP CERTIFICATE UserCertificateB TO FILE='C:\Certs\UserCertificateB.cer';
这行不通:
BACKUP CERTIFICATE UserCertificateB TO FILE='\localmachine\Certs\UserCertificateB.cer';
错误信息是:
消息 15240,级别 16,状态 1,第 2 行
无法写入文件“\localmachine\Certs\UserCertificateB.cer”。请验证您是否具有写入权限、文件路径是否有效以及文件是否不存在。
I can back up the certificate to a file but once created I can't open the file or copy it to any other location.
是的,访问仅限于 SQL 服务器服务帐户。使用管理帐户授予文件适当的权限。使用 icacls
.
Cannot write into file '\localmachine\Certs...'
您正在做 'double hop',因此需要 Kerberos constrained delegation。请联系您的网络管理员为您正确设置。
我知道这是一个老问题,但也许这个答案与其他可能发现相同问题的人相关。
如果显示错误‘Msg 15240, Level 16, State 1, Line 8
无法写入文件 'C:\tmp\cert\MY_TDE_CERT_KEY.PVK'。
验证您是否具有写入权限、文件路径是否有效以及文件是否不存在。’
这是因为脚本必须在服务器上执行,而不是连接到服务器的本地计算机。
一旦 SQL 脚本在服务器中执行,文件将出现在服务器中选定的文件夹中(必须创建一个本地目录)。
错误(图中是本地电脑的路径,是错误的路径,必须在服务器中):
在服务器中执行后
从 Microsoft 中了解到:
“路径是相对于 SQL 服务器实例的。路径需要在托管实例的机器上设置。”
我正在尝试让 SQL Server Service Broker 跨数据库实例工作,并处于复制证书阶段(从发起者到目标,反之亦然)。我可以将证书备份到一个文件,但一旦创建,我就无法打开该文件或将其复制到任何其他位置。如果我尝试打开该文件,我会看到一个消息框,标题为 "Invalid Public Key Security Object File",消息为 "Access is denied.".
服务器在本地域内,并且是 运行 Windows Server 2008 R2 Enterprise with SP1。
这有效(但我无法对该文件执行任何操作):
BACKUP CERTIFICATE UserCertificateB TO FILE='C:\Certs\UserCertificateB.cer';
这行不通:
BACKUP CERTIFICATE UserCertificateB TO FILE='\localmachine\Certs\UserCertificateB.cer';
错误信息是:
消息 15240,级别 16,状态 1,第 2 行 无法写入文件“\localmachine\Certs\UserCertificateB.cer”。请验证您是否具有写入权限、文件路径是否有效以及文件是否不存在。
I can back up the certificate to a file but once created I can't open the file or copy it to any other location.
是的,访问仅限于 SQL 服务器服务帐户。使用管理帐户授予文件适当的权限。使用 icacls
.
Cannot write into file '\localmachine\Certs...'
您正在做 'double hop',因此需要 Kerberos constrained delegation。请联系您的网络管理员为您正确设置。
我知道这是一个老问题,但也许这个答案与其他可能发现相同问题的人相关。
如果显示错误‘Msg 15240, Level 16, State 1, Line 8 无法写入文件 'C:\tmp\cert\MY_TDE_CERT_KEY.PVK'。 验证您是否具有写入权限、文件路径是否有效以及文件是否不存在。’
这是因为脚本必须在服务器上执行,而不是连接到服务器的本地计算机。
一旦 SQL 脚本在服务器中执行,文件将出现在服务器中选定的文件夹中(必须创建一个本地目录)。
错误(图中是本地电脑的路径,是错误的路径,必须在服务器中):
在服务器中执行后
从 Microsoft 中了解到: “路径是相对于 SQL 服务器实例的。路径需要在托管实例的机器上设置。”