sql-server – 以特定用户身份执行xp_cmdshell命令

前端之家收集整理的这篇文章主要介绍了sql-server – 以特定用户身份执行xp_cmdshell命令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想运行xp_cmd shell(Tsql过程),以挂载网络驱动器,然后访问远程mdb文件.

我是MS sql服务器上的管理员,我相应地允许执行xp_cmdshell.

但是,仍然有一个问题:

>当我调用xp_cmdshell时,执行命令的用户sql SysAdmin,即运行sql Server进程的帐户.
>我希望xp_cmdshell作为与我连接到sql服务器(即管理员)的帐户执行

这两个帐户都在管理员组,sqlAdmin组中,并被授予CONTROL SERVER.两个用户都属于同一个域.所有这一切都在同一台机器上运行.

由于这种冲突,我无法使用网络驱动器,因为它是针对SysAdmin而不是管理员安装的
我试图使用sp_xp_cmdshell_ proxy_帐户指定要运行xp_cmdshell的帐户,但是SysAdmin仍然是用户帐户.

因此,这段代码
选择user_name(),suser_name;
exec xp_cmdshell’echo%username%’;

显示
管理员
系统管理员

有没有人知道如何假冒xp_cmdshell命令?是否有(重新)配置?

谢谢你的帮助.

解决方法

因为您将连接到sql作为sysadmin组中的登录名,xp_cmdshell将作为服务帐户运行.

如果您以低权限登录方式连接,则会使用xp_cmdshell_proxy_account.所以尝试先执行EXECUTE AS LOGIN =’lowprivaccount’,看看是否有帮助.

当然,你实际上问的不是预期的用途.预期使用的是高权限帐户可以允许xp_cmdshell使用服务帐户,而其他所有人都必须使用较低权限代理帐户.

猜你在找的MsSQL相关文章