'Xp_cmdshell' এসকিউএল সার্ভার সক্ষম করুন


177

আমি মৃত্যুদণ্ড কার্যকর করতে চাই EXEC master..xp_cmdshell @bcpquery

তবে আমি নিম্নলিখিত ত্রুটিটি পাচ্ছি:

এসকিউএল সার্ভার উপাদান 'এক্সপি_সিএমডিএসহেল' উপাদানটির 'sys.xp_cmdshell' পদ্ধতির অ্যাক্সেসকে অবরুদ্ধ করেছে কারণ এই সার্ভারটির সুরক্ষা কনফিগারেশনের অংশ হিসাবে এই উপাদানটি বন্ধ রয়েছে। একটি সিস্টেম অ্যাডমিনিস্ট্রেটর sp_configure ব্যবহার করে 'xp_cmdshell' ব্যবহার সক্ষম করতে পারে। 'এক্সপি_সিএমডিএসহেল' সক্ষম করার বিষয়ে আরও তথ্যের জন্য, এসকিউএল সার্ভার বুকস অনলাইনে "সারফেস এরিয়া কনফিগারেশন" দেখুন।

এটি সক্রিয় করার কোনও উপায় আছে, বা বৈশিষ্ট্যটি সক্ষম করার আগে কিছু কার্যকর করতে হবে?

কীভাবে সমাধান করবেন?

উত্তর:


370

আপনার এটি সক্ষম করা দরকার। এক্সপি_সিএমএসডিএসএসএসডিএন ডক্সের অনুমতি বিভাগটি দেখুন :

http://msdn.microsoft.com/en-us/library/ms190693.aspx :

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

2
সত্যই কার্যকর, কার্যকর এবং কার্যকর!
indofraiser

2
নিশ্চিত হয়ে নিন যে আপনি এসকিউএল ম্যানেজমেন্ট স্টুডিওটিকে প্রশাসক হিসাবে কার্যকর করেছেন
হাইম রমন

এত বড় সহায়তার জন্য আপনাকে ধন্যবাদ। কয়েকদিন ধরে সমাধান খুঁজছি।
মোহন রাজপুত

2
সুরক্ষা - সক্ষম করুন তবে সাবধান! মনে রাখবেন: এই
সাডার

39

পুনরায় কনফিগার করার পরে আপনি আবার উন্নত বিকল্পটি আড়াল করতে পারেন:

-- show advanced options
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
-- enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
-- hide advanced options
EXEC sp_configure 'show advanced options', 0
GO
RECONFIGURE
GO

19

ডান ক্লিক করুন সার্ভার -> দিকগুলি -> সারফেস এরিয়া কনফিগারেশন -> এক্সপিএমএসহেলএলবেলড -> সত্য এখানে চিত্র বর্ণনা লিখুন


9

অন্যান্য উত্তরে তালিকাভুক্ত হিসাবে, কৌশলটি (এসকিউএল 2005 বা তার পরে) বৈশ্বিক কনফিগারেশন সেটিংসের জন্য show advanced optionsএবং এ পরিবর্তন xp_cmdshellকরা1 , যাতে।

এটি যুক্ত করে আপনি যদি পূর্বের মানগুলি সংরক্ষণ করতে চান তবে আপনি সেগুলি sys.configurationsপ্রথম থেকে পড়তে পারেন , তারপরে এগুলি শেষের দিকে বিপরীত ক্রমে প্রয়োগ করুন। আমরা অপ্রয়োজনীয় reconfigureকলগুলি এড়াতে পারি :

declare @prevAdvancedOptions int
declare @prevXpCmdshell int

select @prevAdvancedOptions = cast(value_in_use as int) from sys.configurations where name = 'show advanced options'
select @prevXpCmdshell = cast(value_in_use as int) from sys.configurations where name = 'xp_cmdshell'

if (@prevAdvancedOptions = 0)
begin
    exec sp_configure 'show advanced options', 1
    reconfigure
end

if (@prevXpCmdshell = 0)
begin
    exec sp_configure 'xp_cmdshell', 1
    reconfigure
end

/* do work */

if (@prevXpCmdshell = 0)
begin
    exec sp_configure 'xp_cmdshell', 0
    reconfigure
end

if (@prevAdvancedOptions = 0)
begin
    exec sp_configure 'show advanced options', 0
    reconfigure
end

নোট করুন যে এটি এসকিউএল সার্ভার সংস্করণ 2005 বা তার পরে নির্ভর করে (মূল প্রশ্নটি ২০০৮-এর জন্য)।


4

যদিও গৃহীত উত্তরটি বেশিরভাগ সময় কাজ করবে, আমি মুখোমুখি হয়েছি (এখনও কেন জানি না) এমন কিছু মামলা রয়েছে যা না। ব্যবহার করে ক্যোয়ারী সামান্য পরিমার্জন WITH OVERRIDEমধ্যে RECONFIGUREসমাধান দেয়

Use Master
GO

EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO

EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
GO

প্রত্যাশিত আউটপুট হয়

কনফিগারেশন বিকল্পটি 'অ্যাডভান্সড অপশনগুলি দেখায়' 0 থেকে 1 তে পরিবর্তিত হয়েছে install
কনফিগারেশন বিকল্প 'xp_cmdshell' 0 থেকে 1 থেকে পরিবর্তিত হয়েছে। ইনস্টল করতে RECONFIGURE বিবৃতি চালান।


4

এমনকি যদি এই প্রশ্নটি সমাধান হয়ে যায় তবে আমি তার সম্পর্কে আমার পরামর্শ যুক্ত করতে চাই .... যেহেতু বিকাশকারী হিসাবে আমি উপেক্ষা করেছি।

এটি জেনে রাখা জরুরী যে আমরা এমএসএসকিউএল xp_Cms শেল সক্ষম সম্পর্কে কথা বলছি সুরক্ষার পক্ষে গুরুতর, যেমনটি বার্তায় সতর্কবাণীতে ইঙ্গিত করা হয়েছে:

ব্লককোয়েট এসকিউএল সার্ভার উপাদান 'এক্সপি_সিএমডিএসহেল' উপাদানটির 'sys.xp_cmdshell' এর অ্যাক্সেসকে অবরুদ্ধ করেছে কারণ এই সার্ভারটির সুরক্ষা কনফিগারেশনের অংশ হিসাবে এই উপাদানটি বন্ধ রয়েছে । [...]

পরিষেবাটি সক্ষম করা ছেড়ে দেওয়া এক ধরণের দুর্বলতা , উদাহরণস্বরূপ কোনও ওয়েব-অ্যাপ্লিকেশনটিতে আক্রমণকারীর কাছ থেকে কমান্ড এসকিউএলকে প্রতিফলিত ও কার্যকর করতে পারে। জনপ্রিয় সিডব্লিউই -৯৯ : SQL Injectionএটি আমাদের সফ্টওয়্যারটিতে দুর্বলতা হতে পারে এবং তাই এই ধরণের পরিস্থিতিগুলি সম্ভাব্য আক্রমণের পথ প্রশস্ত করতে পারে যেমন ক্যাপেক -১৮ :Command Line Execution through SQL Injection

আমি আশা করি আনন্দদায়ক কিছু করেছি, আমরা বিকাশকারী এবং প্রকৌশলী সচেতনতার সাথে জিনিসগুলি করি এবং আমরা আরও নিরাপদ থাকব!


0

আমার জন্য, এসকিউএল ২০০৮ আর 2 এর একমাত্র উপায় ছিল:

EXEC sp_configure 'Show Advanced Options', 1    
RECONFIGURE **WITH OVERRIDE**    
EXEC sp_configure 'xp_cmdshell', 1    
RECONFIGURE **WITH OVERRIDE**

-1

আপনি এসকিউএলসিএমডি ব্যবহার করে করতে পারেন। আপনি নিম্নলিখিত কমান্ড চালানো হয়েছে। এখানে চিত্র বর্ণনা লিখুন


2
আপনি কি এই প্রশ্নের অন্যান্য উত্তরদাতাদের চেয়ে এই উত্তরটি কীভাবে আলাদা তা দেখাতে পারেন। এছাড়াও, দয়া করে স্ক্রিনশটের পরিবর্তে আপনার কোডের জন্য একটি কোড ব্লক ব্যবহার করুন।
এথফাউড

c: \> sqlcmd -S। -E 1) EXEC sp_con \
arnav
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.