加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:37:10 所属栏目:MsSql教程 来源:网络整理
导读:我想运行xp_cmd shell(TSQL过程),以挂载网络驱动器,然后访问远程mdb文件. 我是MS SQL服务器上的管理员,我相应地允许执行xp_cmdshell. 但是,仍然有一个问题: 当我调用xp_cmdshell时,执行命令的用户是SQL SysAdmin,即运行SQL Server进程的帐户. 我希望xp_cmdsh
我想运行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使用服务帐户,而其他所有人都必须使用较低权限代理帐户.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读