
--开启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);
}
};

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器