Windows下SQL Server添加CLR程序集的文件权限问题排查
SQL Server添加CLR正则程序集遇到的权限与文件读取问题
我正在为公司项目在SQL Server中添加包含正则功能的CLR程序集,这是我首次添加用户定义函数,参考了相关指南。
执行以下语句时:
CREATE ASSEMBLY DbRegex AUTHORIZATION [dbo] FROM '..\CLR_UDF_DLLs\DbRegex.dll' WITH PERMISSION_SET = SAFE
出现错误:
CREATE ASSEMBLY failed because it could not read from the physical file '..\CLR_UDF_DLLs\DbRegex.dll': 50
我尝试通过设置签名解决问题,执行语句:
USE master GO CREATE ASYMMETRIC KEY ClrSign FROM EXECUTABLE FILE = 'C:\Repos\Dev\Setup\ProgramData\Database\CLR-UDF-DLLs\DbRegex.dll'; GO
又出现错误:
The certificate, asymmetric key, or private key file is not valid or does not exist; or you do not have permissions for it
为获取权限,我查阅了SQL Server权限配置相关文档,但文档中提及的文件不存在,且在权限配置对话框中无法选择可给SQL Server添加权限的角色或用户。
请问添加该程序集时我遗漏或做错了什么步骤?
环境信息:
- 操作系统:Windows 11
- 数据库工具:Microsoft SQL Server Management Studio 20.2
- 开发工具:Microsoft Visual Studio Community 2022
- 服务器状态:以数据库引擎运行,附带SSMS登录界面截图、DbRegex.dll权限截图
内容的提问来源于stack exchange,提问作者MaxH
相关产品推荐
相关产品推荐

