当我在Server 2008中执行以下语句时:
use master
go
exec sp_configure 'show advanced options', 1;
go
reconfigure
go
exec sp_configure 'xp_cmdshell',1;
go
reconfigure
go
EXEC XP_CMDSHELL 'whoami'
它给出了以下错误:
Msg 15121,级别16,状态21,过程xp_cmdshell,第1行--在执行xp_cmdshell期间发生了错误。对'CreateProcess‘的调用
我正在尝试使用非系统管理员的代理帐户来授予他们在xp_cmdshell上的exec权限。我所做的是:
USE [master]
GO
CREATE CREDENTIAL [proxyaccount] WITH IDENTITY = N'domain\user', SECRET = N'password'
GO
USE [master]
GO
CREATE CREDENTIAL [proxyaccount] WITH IDENTITY = N'domain\user', SECRET = N'password'
GO
USE [m
我正在使用Server 2016,我需要让来自MyDatabase的用户执行xp_cmdshell。我所做的工作如下:
USE [MyDatabase]
GO
GRANT EXECUTE ON xp_cmdshell TO myUser
GO
myUser是来自MyDatabase的用户,当我运行上面的代码(记录为sa )时,会得到以下错误:
只有在当前数据库是主数据库时,才能授予服务器作用域目录视图或系统存储过程或扩展存储过程的权限。
我需要将用户添加到master数据库吗?我觉得这不安全。
我需要这样做,因为我想从存储过程中编写一个文本文件。我找到了以下文章http://www.nige
我需要将一个表BCP到一个以制表符分隔的文件中,但我需要该表的第一条记录中的列名。问题1: BCP没有此交换机的说法对吗?问题2:如果不是,为什么?
我试着做了以下事情:
BCP "declare @colnames varchar(max); select @colnames=coalesce (@colnames+char(9), '')
+ Column_Name from db.information_Schema.columns where table_name='table1' order by
ordinal_position; sel
我创建了一个具有Sysadmin访问权限的代理帐户。用户使用此命令执行自己选择的bcp命令。
但是,当用户希望执行他们获得的proc时:执行权限被拒绝了对对象'xp_cmdshell‘、数据库’mssqlsystemresource资源‘、模式'sys'的访问权限。
这是我的程序:
CREATE PROCEDURE spCMDProxy
(
@SQLSTATEMENT VARCHAR(1000),
@FILENAME VARCHAR(1000)
)
WITH ENCRYPTION
AS
BEGIN
DECLARE @PrepStatement VAR