zoukankan      html  css  js  c++  java
  • SQL Server在数据库中使用程序集(Assemblies)

    开启clr_enabled 参数

    sp_configure 'show advanced options', 1
    RECONFIGURE
    GO
    
    sp_configure 'clr_enabled', 1
    RECONFIGURE
    GO
    
    sp_configure
    GO
    

    数据库或login需要满足的条件

    1. 程序集经过了强名称签名或使用证书进行了 Authenticode 签名。 此强名称 (或证书) 在 内部创建为非对称密钥 (或证书) ,并且具有外部访问程序集的 EXTERNAL ACCESS ASSEMBLY 权限) (或不安全程序集的 UNSAFE ASSEMBLY 权限 () 的相应登录名。
    2. 数据库所有者 (DBO) 具有 EXTERNAL ACCESS 程序集的 EXTERNAL ACCESS ASSEMBLY () 或 UNSAFE ASSEMBLY (for UNSAFE 程序集) 权限,并且数据库的 TRUSTWORTHY数据库属性设置为 ON。

    使用sys.sp_add_trusted_assembly添加程序集

    USE TrustedAsmDB;
    GO
    
    CREATE ASSEMBLY Sql2k17TrustedAsm
    FROM 'W:\\<path_to_dll>\\Sql2k17TrustedAsm1.dll'
    GO
    

    创建程序集后导出为脚本,获取到里面的二进制值

    USE master;
    GO
    DECLARE @clrName nvarchar(4000) = 'sql2k17trustedasm1, ...'
    DECLARE @asmBin varbinary(max) = 0x4D5A90000300000004000000FFFF00...;
    DECLARE @hash varbinary(64);
    
    SELECT @hash = HASHBYTES('SHA2_512', @asmBin);
    
    EXEC sys.sp_add_trusted_assembly @hash = @hash,
                                     @description = @clrName;
    
  • 相关阅读:
    Docker搭建NSQ实时分布式消息集群
    雪花算法
    代码抽象三原则
    PostgreSQL12-主从复制
    logrus日志框架
    Golang中的布隆过滤器
    golang-Json编码解码
    List分组迭代器
    redis-cli命令行远程连接redis服务
    pycharm常用快捷键与设置
  • 原文地址:https://www.cnblogs.com/ls11736/p/15715168.html
Copyright © 2011-2022 走看看