一、使用vs2017生成sqlserver 2017项目时由于添加的程序集(CLR集成,可以参考后面给出的链接进行理解)

,由于安全权限的配置不正确引发以下的问题:

SQL72014: .Net SqlClient Data Provider: Msg 10343, Level 14, State 1, Line 1

针对带有 SAFE 或 EXTERNAL_ACCESS 选项的程序集“XXX”的 CREATE 或 ALTER ASSEMBLY 失败,

因为 sp_configure 的“clr 严密安全性”选项设置为 1。Microsoft 建议使用其相应登录名具有 UNSAFE ASSEMBLY

权限的证书或非对称密钥为该程序集签名。或者,也可以使用 sp_add_trusted_assembly 信任程序集。

a)   起因—摘抄自MSDN: https://docs.microsoft.com/zh-cn/sql/database-engine/whats-new-in-sql-server-2017?view=sql-server-2017

Sqlserver2017中,CLR 在 .NET Framework 中使用代码访问安全性 (CAS)(不可再作为安全边界)。

使用 PERMISSION_SET = SAFE 创建的 CLR 程序集可以访问外部系统资源、调用非托管代码以及获取 sysadmin 特权。

从 SQL Server 2017 (14.x) 开始,引入了名为 clr strict security 的 sp_configure 选项,以增强 CLR 程序集的安全性。

默认启用 clr strict security,并将 SAFE 和 EXTERNAL_ACCESS 程序集与标记为 UNSAFE 的程序集同等对待。

可禁用 clr strict security 选项以实现后向兼容性,但不建议这样做。 Microsoft 建议所有程序集都通过证书或非对称密钥进行签名,

且该证书或非对称密钥具有已在主数据库中获得 UNSAFE ASSEMBLY 权限的相应登录名。 现在可以将 CLR 程序集添加到白名单,

作为 clr strict security 功能的变通方法。 添加 sp_add_trusted_assembly、sp_drop_trusted_assembly 和 sys.trusted_asssemblies

以支持受信任的程序集白名单。 有关详细信息,请参阅 CLR 严格安全性。

b)   解决方式:参考--- http://usingprogramming.com/category/Blog

采用 sp_add_trusted_assembly的方式添加信任到数据库里去.

DECLARE @hash AS BINARY(64) = (SELECT HASHBYTES('SHA2_512', (SELECT * FROM OPENROWSET (BULK 'XXX.dll', SINGLE_BLOB) AS [Data])))

EXEC sp_add_trusted_assembly @hash

然后可以通过:

select * from sys.trusted_asssemblies 视图查看已经添加的信任的程序集

至此就解决了. 希望有所帮助.

转载于:https://www.cnblogs.com/bluecool/p/9299072.html

vs2017生成sqlserver 2017项目出现.Net SqlClient Data Provider: Msg 10343相关推荐

  1. SQLserver 报错RegCreateKeyEx() 返回了错误 5,“拒绝访问。” (.Net SqlClient Data Provider)错误号: 22002 严重性: 16 状态: 1

    记录一下解决这个问题的过程,我是需要修改数据库服务器的属性里面对于的东西,如果直接在客户端进行可视化修改,你其实修改的东西,客户端会对应的写入到注册表中. 拒绝访问,一般就是没有权限, 解决办法:进入 ...

  2. VS2017生成项目报 找不到资产文件“xxxx\obj\project.assets.json

    VS2017生成项目报 " 找不到资产文件"xxxx\obj\project.assets.json" ":   解决方案:   首先检查是否开启了 " ...

  3. Visual Studio 2017项目进行打包并附加.net框架打包,菜鸟级安装教程

    VS2017项目打包安装教程 一.准备工作 1.安装Installer(若已经安装,则直接进行下一步) 二.打包可执行程序 1.创建setup打包项目 2.编辑Application Folder 3 ...

  4. VS2017生成一个简单的DLL文件 和 LIB文件——C语言

    下面我们将用两种不同的姿势来用VS2017生成dll文件(动态库文件)和lib文件(静态库文件),这里以C语言为例,用最简单的例子,来让读者了解如何生成dll文件(动态库文件) 生成动态库文件 姿势一 ...

  5. VS2017 生成DLL 供python 调用

    今天突然想到python调用C++的问题,其中碰到了很多坑,最后终于弄好了,写博客来记录一下,以免忘记了: VS2017生成DLL python调用 VS2017生成DLL 1.新建项目->wi ...

  6. 如何生成lib文件 采用VS2017生成lib文件(静态库文件)以C++语言为例 静态库的生成和使用

    开发环境 VS2017  先展示项目解决方案的结构,代码量很小 第一部分:生成静态库,即.lib文件 第一步:新建一个空项目 打开VS2017,文件->新建->项目,选择"空项目 ...

  7. IDEA 2019 生成Spring Boot项目,编写第一个Hello World程序,并打包成jar

    IDEA集成了生成Spring Boot项目的功能,不需要你去 start.spring.io 上下载,使用方法如下: 新建项目,选择Spring Initializr: 然后点NEXT: 勾选需要的 ...

  8. 如何创建生成非 MFC 项目的自定义 AppWizards

    当自定义的应用程序向导生成一个项目时,则它只是不能替换自动创建的.dsp 项目设置文件. .dsp 文件中的项目设置由假定所有生成的项目为 MFC 项目的内部规则设置. 但是,Visual C++ 5 ...

  9. sqlserver 2017 还原遇到报错The operating system returned the error ‘21(设备未就绪。)‘

    环境:windows 2016 + sqlserver 2017 备份时正常,还原时一直卡在下面的界面不动 查看日志发现两个报错 The operating system returned the e ...

最新文章

  1. 基于多种转换语义的图数据库查询
  2. iOS开发 - 抛出异常
  3. 在DataGridView控件中一次显示出多个圆饼图的原始程序代码
  4. Oracle删除当前用户下的所有表、视图、序列、函数、存储过程、包
  5. APP中某个页面巨卡
  6. rotate 3D 篇二
  7. 进阶:案例三: Upload File using WebDynpro
  8. VS运行程序时遇到0xc0150002的问题
  9. RQNOJ 34 紧急援救
  10. pythonpdf识别文字软件_如何使用Python进行PDF图片识别OCR
  11. android pin码 经典蓝牙_请问 蓝牙 的自动设置PIN码 功能该怎么实现。
  12. 计算机网络的组成与分类
  13. 交通-地铁客流量python时间序列预测
  14. 学会这些,不做委屈的项目经理
  15. CF小组训练赛 Holiday 19
  16. 阿里巴巴为什么“去IOE”
  17. matlab 设置采样时间设置,不建议设置采样时间的模块
  18. 何为智能家居上游产业?对其发展有何影响
  19. 公众号榜单 | 2020·8月公众号行业排行榜重磅发布
  20. 徒弟请客吃饭,老员工想点硬菜,师傅用这招摆平,同事:别惯着

热门文章

  1. ☆用Python实现ACM各大输入输出格式
  2. 【牛客 - 283C】模拟只会猜题意(简单模拟)
  3. 【nyoj - 252】 01串(简单dp)
  4. 【POJ - 3268 】Silver Cow Party(Dijkstra最短路+思维)
  5. php mysql int 日期格式化 string,MYSQL int类型字段的时间存放和显示 和 php的时间存放函数...
  6. mnesia mysql性能,Mnesia数据库的存储容量是多少?
  7. python一个月能掌握吗_Python 从入门到精通:一个月足够了!
  8. matlab 排序点,matlab如何进行排序?
  9. linux添加启动脚本文件夹,linux – 将脚本中的符号链接添加到rc.d文件夹中以在系统启动期间启动进程...
  10. Linux实验五:Linux环境下的C语言编程