使用 Perl 脚本进行管理和监视
通过 SQL Server 中的 Web 服务,可以从任何具有 Web 服务支持的平台连接到 SQL Server。为了说明这一互操作性,我们将创建 Perl 脚本以连接到 SQL Server。Perl 被普遍用于创建脚本,以便帮助管理和监视数据库服务器。
下面的示例说明了如何创建 Perl 脚本以监视数据库的状态。SQL Server 已经引入了对动态管理视图的支持,这些视图提供了有关正在运行的服务器的动态状态信息。在该示例中,我们创建了一个 Perl 脚本,以便通过查询名为 dm_exec_connections 的动态视图来监视与数据库之间的活动连接的数量。
我们假设运行这段代码的计算机已经正确安装和配置了 Perl。
这里的示例使用 ActiveState 5.8.x Perl 软件包。该脚本利用下列软件包:
• 安装 http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd
• 安装 http://theoryx5.uwinnipeg.ca/ppms/XML-Parser.ppd
• 安装 http://theoryx5.uwinnipeg.ca/ppms/libxml-perl.ppd
• 安装 http://theoryx5.uwinnipeg.ca/ppms/XML-RegExp.ppd
• 安装 http://theoryx5.uwinnipeg.ca/ppms/XML-DOM.ppd
在该示例中,我们需要 SSL,因为 Perl 应用程序将使用 BASIC 身份验证和 SQL-Auth,并且 XML 软件包需要分析响应并显示结果。
注 有关完整脚本的信息,请参见相关的下载。
下面的代码块将 SOAP Lite 软件包实例化。我们需要明确要求将输出格式化为 XML,以便可以分析响应。
-> uri('http://Adventure-Works/Customers/')
-> proxy('https://srikr-800/sql/sql_auth')
-> outputxml(1);
接下来,我们需要为该连接设置凭据。因为我们打算使用 SQL-Auth,所以我们需要按如下方式初始化 UsernameToken 标头。
# <wsse:Security xmlns:wsse="http://docs.oasis-
open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
# <wsse:UsernameToken>
# <wsse:Username>sql_user</wsse:Username>
# <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01
/oasis-200401-wss-username-token-profile-1.0#PasswordText">
foo-bar1
</wsse:Password>
# </wsse:UsernameToken>
# </wsse:Security>
my $Username = SOAP::Data->name('Username' => 'AdminUser');
my $Password = SOAP::Data->name('Password' => 'password')
->attr({Type => 'http://docs.oasis-open.org/wss/2004/01
/oasis-200401-wss-username-token-profile-1.0#PasswordText'});
my $UsernameToken= SOAP::Data->name('UsernameToken')
->value(\SOAP::Data->value($Username, $Password));
my $security = SOAP::Header->name(Security)
->attr({'xmlns' => 'http://docs.oasis-open.org/wss
/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'})
->value(\$UsernameToken);
BASIC 身份验证凭据是通过实现以下存根传入的:
return 'User' => 'Password';
}
注 建议不要在脚本文件中存储/引用密码。用户在处理密码时应该遵循标准的安全准则。
