Sql server 是否可以使用管理员权限或作为特定用户执行perl脚本?
我正在编写一个perl脚本,其中我必须关闭mssql服务器,执行一些操作,然后重新启动它。我知道有一种方法是使用netstat停止服务,但我不能使用它。所以我试着安装DBI和DBD::ODBC模块。 更多信息请点击此处: 但是当我试图用这个命令关闭我的服务器时Sql server 是否可以使用管理员权限或作为特定用户执行perl脚本?,sql-server,perl,dbi,Sql Server,Perl,Dbi,我正在编写一个perl脚本,其中我必须关闭mssql服务器,执行一些操作,然后重新启动它。我知道有一种方法是使用netstat停止服务,但我不能使用它。所以我试着安装DBI和DBD::ODBC模块。 更多信息请点击此处: 但是当我试图用这个命令关闭我的服务器时 $dbh->prepare("SHUTDOWN WITH NOWAIT "); 这对我不起作用: 我得到了社区的回应 关闭权限被分配给固定服务器角色的sysadmin和serveradmin的成员,并且它们不可转移。我认为它不像(
$dbh->prepare("SHUTDOWN WITH NOWAIT ");
这对我不起作用:
我得到了社区的回应
关闭权限被分配给固定服务器角色的sysadmin和serveradmin的成员,并且它们不可转移。我认为它不像(希望)Perl使用此权限运行。
那么,请告诉我,有没有一种方法可以作为这些用户运行上述命令?或者除了这个我还能做什么。请注意,我有一个约束,不能简单地将其作为windows服务停止。如果脚本通过web浏览器执行,则执行脚本的用户将由web服务器定义。摆弄这个用户可能不是个好主意。保持现状就行了 您可以做的是创建一个Perl脚本,该脚本由特权用户在与CRON一致的基础上运行 CRON运行的这个脚本可以检查特定的内容,比如由脚本编写的文件,其中执行脚本的用户拥有较少的权限 因此,它的工作方式如下:
您不想将当前用户添加到这两个组中的任何一个?我正在使用已经是sysadmin成员的“sa”用户执行此脚本。您作为谁连接到数据库?DBI->connect语句是什么样子的?正如我在中所评论的,在停止SQL Server之后,如何再次启动它?您需要正确的Windows权限才能启动服务,因此这实际上是一个关于启动和停止Windows服务的问题。仅仅因为您有权在SQL Server中运行
SHUTDOWN
,并不意味着您有权启动SQL Server服务:SHUTDOWN
需要SQL Server权限,但启动服务需要Windows权限。@MichaelGardersysadmin
和serveradmin
是SQL Server,它们不是Windows组。