我想运行xp_cmdshell(TSQL过程)以便装入网络驱动器,然后访问远程mdb文件。以特定用户身份执行xp_cmdshell命令
我是MS SQL服务器上的管理员,我允许xp_cmdshell相应地执行。
然而,仍然有一个问题:
当我打电话xp_cmdshell的,执行命令的用户是SQL 系统管理员,即谁运行SQL Server进程的帐户。
我希望的xp_cmdshell执行作为与我连接到SQL Server的帐户,即管理员
论文的两个账户都在管理员组,SQLAdmin组,并授予控制服务器。两个用户都属于同一个域。所有这些都在同一台机器上运行。
因为这个矛盾的,我不能,因为它被安装用于系统管理员而不是管理员
使用的网络驱动器,我试图用以sp_ xp_ cmdshell_ proxy_占指定与我想要的帐户运行xp_cmdshell,但系统管理员仍然是使用的帐户。
因此,此代码:
select user_name(), suser_name;
exec xp_cmdshell 'echo %username%';
显示:
Administrator Administrator
SysAdmin
有谁知道如何来冒充好了xp_cmdshell的命令?有什么(重新)配置?
感谢您的帮助。
代理帐户时,非系统管理员用户执行xp_cmdshell – 2009-07-07 14:01:26
那么我怎么能强迫一个特定的系统管理员用户只使用? – Antwan 2009-07-07 14:19:15
只是为了澄清 - 您已使用sp_xp_cmd_shell_proxy_account设置要使用的帐户,然后使用xp_cmdshell执行该命令,并且使用的帐户仍是服务帐户?我只是想确保我理解你的步骤。 – SqlRyan 2009-07-28 03:19:29