我如何在 SQL Server management studio 中 运行 一个 exe 文件
How can I run an exe file in SQL Server management studio
我已经创建了一个 python 脚本并且看到了我可以尝试 运行 它在 SQL 查询中的唯一方法是如果我把它变成一个 .exe 文件并尝试 运行 在 SQL 查询中。
我尝试了以下方法。但是没有运气,我找不到关于如何实现这一目标的良好分步指南。
EXEC xp_cmdshell '"C:\Users\USER\Desktop\pythonexe\dist\dbtest.exe"'
来自 ssms 的结果
1 Access is denied
2 NULL
我已经完成了 xp_cmdshell 所需的所有必要设置,当我 运行 exe 文件时,只需双击它就可以正常工作。
我怀疑这与用户和权限有关。但是我找不到关于如何设置它的好的指南。
我的 python 脚本所做的是从查询中获取数据并将这些数据解析到短信网关 API。当我在 Python 中 运行 时,它工作正常。我现在需要做的是在 sequel server management studio 中将此 运行 作为存储过程的一部分。这将有助于从检索到的数据中自动发送文本消息。这是 python 脚本
光标=conn.cursor()
cursor.execute('SELECT top 1 Phone,Message FROM sms1 WHERE LEN(Phone)=13')
for row in cursor:
username = "sandbox"
apikey = "bf6c41a2be6"
africastalking.initialize(username, apikey)
sms = africastalking.SMS
number = [row[0]]
recipients = number
message = row[1]
print(number, message)
sender = "MegaLtd"
try:
response = sms.send(message, recipients, sender)
print(response)
except Exception as e:
print(f"Houston, we have a problem {e}")
当我在 ssms 中尝试此操作时,出现语法错误。我怎样才能在 SQL 中 运行 上面的 python 脚本。我查看了 sp_execute_external_script 的过程,我是 运行ning SSQL Server 2017 并分别安装了 python 和 r。
如果您已连接到服务器,则它无法访问您的本地计算机。您可以尝试将 .exe 放在您的服务器上,或者切换到 运行 本地连接,这样它就可以访问了。
一般是文件系统权限不足。检查并验证运行 SQL 服务器的用户帐户(例如 LocalSystem 或 NetworkService)是否具有对可执行文件的权限(读取+执行)。
转到 -> Services.msc 并检查您的 SQL 服务器是 运行 当前用户/管理员用户身份验证,它有权访问您的文件系统。
xp_cmdshell 需要访问权限 "C:\WINDOWS\system32" 检查是否可以访问。
同时将exe文件放入C:或D:的内部文件夹即"D:\dist\dbtest.exe"
我已经创建了一个 python 脚本并且看到了我可以尝试 运行 它在 SQL 查询中的唯一方法是如果我把它变成一个 .exe 文件并尝试 运行 在 SQL 查询中。
我尝试了以下方法。但是没有运气,我找不到关于如何实现这一目标的良好分步指南。
EXEC xp_cmdshell '"C:\Users\USER\Desktop\pythonexe\dist\dbtest.exe"'
来自 ssms 的结果
1 Access is denied 2 NULL
我已经完成了 xp_cmdshell 所需的所有必要设置,当我 运行 exe 文件时,只需双击它就可以正常工作。
我怀疑这与用户和权限有关。但是我找不到关于如何设置它的好的指南。
我的 python 脚本所做的是从查询中获取数据并将这些数据解析到短信网关 API。当我在 Python 中 运行 时,它工作正常。我现在需要做的是在 sequel server management studio 中将此 运行 作为存储过程的一部分。这将有助于从检索到的数据中自动发送文本消息。这是 python 脚本
光标=conn.cursor() cursor.execute('SELECT top 1 Phone,Message FROM sms1 WHERE LEN(Phone)=13')
for row in cursor:
username = "sandbox"
apikey = "bf6c41a2be6"
africastalking.initialize(username, apikey)
sms = africastalking.SMS
number = [row[0]]
recipients = number
message = row[1]
print(number, message)
sender = "MegaLtd"
try:
response = sms.send(message, recipients, sender)
print(response)
except Exception as e:
print(f"Houston, we have a problem {e}")
当我在 ssms 中尝试此操作时,出现语法错误。我怎样才能在 SQL 中 运行 上面的 python 脚本。我查看了 sp_execute_external_script 的过程,我是 运行ning SSQL Server 2017 并分别安装了 python 和 r。
如果您已连接到服务器,则它无法访问您的本地计算机。您可以尝试将 .exe 放在您的服务器上,或者切换到 运行 本地连接,这样它就可以访问了。
一般是文件系统权限不足。检查并验证运行 SQL 服务器的用户帐户(例如 LocalSystem 或 NetworkService)是否具有对可执行文件的权限(读取+执行)。
转到 -> Services.msc 并检查您的 SQL 服务器是 运行 当前用户/管理员用户身份验证,它有权访问您的文件系统。
xp_cmdshell 需要访问权限 "C:\WINDOWS\system32" 检查是否可以访问。
同时将exe文件放入C:或D:的内部文件夹即"D:\dist\dbtest.exe"