zoukankan      html  css  js  c++  java
  • sql clr自定义函数 程序集权限问题

    --开启clr 
    exec sp_configure 'show advanced options', '1' ;
    go
    reconfigure ;
    go
    exec sp_configure 'clr enabled', '1'
    go
    reconfigure ;
    exec sp_configure 'show advanced options', '1' ;
    go

    --创建cctv新用户,sa不行
    create login [cctv] with password=N'123456', default_database=[master], default_language=[简体中文], check_expiration=off, check_policy=off
    GO
    exec sys.sp_addsrvrolemember @loginame = N'cctv', @rolename = N'sysadmin'
    GO
    exec sys.sp_addsrvrolemember @loginame = N'cctv', @rolename = N'securityadmin'
    GO
    exec sys.sp_addsrvrolemember @loginame = N'cctv', @rolename = N'serveradmin'
    GO
    exec sys.sp_addsrvrolemember @loginame = N'cctv', @rolename = N'setupadmin'
    GO
    exec sys.sp_addsrvrolemember @loginame = N'cctv', @rolename = N'processadmin'
    GO
    exec sys.sp_addsrvrolemember @loginame = N'cctv', @rolename = N'diskadmin'
    GO
    exec sys.sp_addsrvrolemember @loginame = N'cctv', @rolename = N'dbcreator'
    GO
    exec sys.sp_addsrvrolemember @loginame = N'cctv', @rolename = N'bulkadmin'
    GO



    --授权程序集
    grant external access assembly to cctv

    grant unsafe assembly to cctv

    alter database qanholas set trustworthy on


    use qanholas
    go
    --创建程序集
    create assembly SqlClassLibrary

    from 'D:\SqlClassLibrary.dll'

    with permission_set = external_access

    --创建clr函数
    create function dbo.fun ( )
    returns nvarchar(max)
    as external name
    SqlClassLibrary.UserDefinedFunctions.Function1


    drop function fun
    select dbo.fun() --cctv用户执行,sa没有权限

    --------------------------------------------

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Data.SqlTypes;
    using Microsoft.SqlServer.Server;
    using System.IO;
    using System.Net;

    public partial class UserDefinedFunctions
    {
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlString Function1()
    {
    // 在此处放置代码



    WebRequest request
    = WebRequest.Create(@"http://www.hao123.com/");
    WebResponse response
    = request.GetResponse();
    Stream resStream
    = response.GetResponseStream();
    StreamReader sr
    = new StreamReader(resStream, System.Text.Encoding.Default);
    string htmlstr
    = sr.ReadToEnd();
    resStream.
    Close();
    sr.
    Close();

    return new SqlString(htmlstr);
    }
    };

  • 相关阅读:
    sql中top使用方法
    hive查询练习
    sqoop课堂总结
    hive分区表与数据关联的三种方式
    hive中partition如何使用
    方法层!
    針對數據庫的數據的增刪改查的功能做接口
    Web Project犯错误!
    HttpServlet 详解(注!仿)
    创建一个程序,从应用程序中随机添加N名参加歌唱比赛的同学,并随机对这N名同学的比赛按姓名的拼音先后顺序进行排序
  • 原文地址:https://www.cnblogs.com/qanholas/p/1882223.html
Copyright © 2011-2022 走看看