科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何使用SQL CLR表值函数进行扩展(3)

如何使用SQL CLR表值函数进行扩展(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Microsoft SQL Server 2005 的一项新增功能是其与 Microsoft .NET Framework 公共语言运行库 (CLR) 的集成。这使得人们能够将 .NET Framework 类和函数纳入 Transact-SQL 语句和查询。

作者:microsoft.com 来源:microsoft.com 2007年8月30日

关键字: CLR 数据库 SQL Server SQL Server 各版本

  • 评论
  • 分享微博
  • 分享邮件

部署权限:

SQL Server 使用权限集在其宿主环境中安全地运行代码。当您在 Visual Studio 中创建数据库项目时,默认的权限集是 SAFE。这是唯一允许您在不进行其他配置的情况下直接从 Visual Studio 中部署的权限集。若要向您的程序集赋予 SAFE 以外的权限集,必须给您的程序集一个强名称,并执行其他配置步骤,然后才将该程序集部署到数据库。

向 SQL Server 注册程序集时,有三种可能的权限集:SAFE、EXTERNAL ACCESS 和 UNSAFE。

• SAFE 只允许内部计算和从该程序集中的代码进行本地数据访问。

• EXTERNAL ACCESS 允许访问外部系统资源,如文件、网络资源和注册表。

• UNSAFE 允许该程序集中的代码不受限制地运行。

若要使用 SAFE 以外的权限集部署您的程序集,必须遵循一些其他步骤。首先,必须从您要向 SQL Server 注册的程序集创建非对称密钥。其次,使用该密钥来创建登录信息。最后,必须向该登录信息授予相应的权限。以下 Transact-SQL 语句使用上述步骤将 UNSAFE 权限集授予根据前一部分的 tvfEventLogs 示例创建的程序集。

USE master
GO
CREATE ASYMMETRIC KEY EventLogKey FROM EXECUTABLE FILE =
'D:\assemblies\tvfEventLog\tvfeventlog.dll'
CREATE LOGIN EventLogLogin FROM ASYMMETRIC KEY EventLogKey
GRANT UNSAFE ASSEMBLY TO EventLogLogin
GO

这一操作只需进行一次,不是每次部署该程序集时都要进行。有关使用不同的权限集和向 SQL Server 注册程序集的详细信息,请参阅 CLR 集成代码访问安全性和创建程序集,二者都包含在 SQL Server 2005 联机丛书中。

事件日志报表:

在您部署了该表值函数后,该计算机的系统事件日志的虚拟表会添加到数据库中。由于 SQL Server 将该函数视为表,所以它可以无缝地用在 Reporting Services 中。

在您部署了该程序集后,请使用 Visual Studio 来创建新的 Reporting Services 项目。(如果您不熟悉如何使用 Reporting Services 报表设计器来创建报表,请参阅 SQL Server 2005 联机丛书中的 Reporting Services 教程。)使用连接到安装了该函数的同一数据库的 SQL Server 数据源创建报表。接着,创建使用以下查询的数据集:

SELECT TOP 10 T.logTime, T.Message, T.InstanceId
FROM dbo.ReadEventLog(N'Security') as T
WHERE T.Category = N'Logon/Logoff'

定义了数据集后,将表数据区域添加到报表布局,并将数据集中的各个字段添加到表详细信息行。最后,运行该报表。它将显示本地计算机的 Logon/Logoff 类别中的最后 10 个安全事件。图 2 显示了该报表的一个示例。

如何使用SQL CLR表值函数进行扩展(3)

图 2. 报表示例

此简单示例可加以扩展,在其中包括其他计算机管理和监视任务。例如,可以创建一个表值函数来分析 Microsoft Internet 信息服务 (IIS) 日志。然后,可以使用 Reporting Services 来创建 Web 流量监视应用程序。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章