Search code examples
sql-serverpermissionsxp-cmdshell

SQL Server : xp_cmdshell have very limited privilegies


I don't know if it should be like this. When I'm trying to do anything with xp_cmdshell procedure it almost every time gives me Access Denied.

For example I can't create new .txt file, can't create new user, nothing. I'm logged in with windows administrator user.

Is there any way to run this procedure with administrator privileges?


Solution

  • XP_CmdShell will execute under the context of the Service Account running the SQL Server Service. The service account needs the permissions to the external resources.

    Could I point out however, that enabling xp_cmdshell is not a good idea. It opens lots of security holes. For example, if your app has an unknown volnerability to SQL injection, a hacker could do all sorts on your network that you rather avoid.

    If you must use external resources then better approaches would include a CLR procedure or calling a Job that executes a CMDEXEC step.