微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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使用服务帐户,而其他所有人都必须使用较低权限代理帐户.

原文地址:https://www.jb51.cc/mssql/82005.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐