क्रिएट फ़ाइल ऑपरेटिंग सिस्टम त्रुटि 5 का सामना करना पड़ा (प्रवेश निषेध है।)


13

मैं SQL सर्वर प्रबंधन स्टूडियो में निम्न स्क्रिप्ट निष्पादित करने का प्रयास कर रहा हूं:

USE [master]
GO

CREATE DATABASE [test1] ON PRIMARY (
  NAME = N'test1', 
  FILENAME =
    N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1.mdf',
  SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB)
LOG ON (
  NAME = N'test1_log',
  FILENAME =
    N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\test1_log.ldf',
  SIZE = 164672KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)

लेकिन मुझे त्रुटि मिल रही है:

Msg 5123, लेवल 16, स्टेट 1, लाइन 2
क्रिएट फाइल ऑपरेटिंग सिस्टम एरर 5 (एक्सेस से वंचित है)
को खोलने या भौतिक फ़ाइल
'C: \ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRIN \ MSSQL \' बनाने का प्रयास करते समय सामना करना पड़ा। आंकड़े \ test1.mdf '।

Msg 1802, Level 16, State 4, Line 2
CREAT DATABASE विफल रहा। सूचीबद्ध कुछ फ़ाइल नाम नहीं बनाए जा सके। संबंधित त्रुटियों की जाँच करें।

मेरे उपयोगकर्ता के लिए पहले से ही सभी अनुमतियाँ हैं, क्या गलत है?


1
"आपका उपयोगकर्ता" या उपयोगकर्ता आपकी सेवा के रूप में चल रहा है? सर्वर प्रक्रिया आपके उपयोगकर्ता नहीं, बल्कि उस फ़ाइल को बनाने का प्रयास करेगी।

1
यदि फ़ाइल पहले से मौजूद है तो क्या आप जांच सकते हैं? (शायद पिछले प्रयासों से) यदि मौजूद है और SqlServer द्वारा खोला जाता है, तो आपको एक एक्सेस अस्वीकृत त्रुटि मिल जाती है

1
सेवाएं-> एसक्यूएल सर्वर-> डबल क्लिक-> दूसरा टैब पेज (कनेक्शन?)

1
@thiagocfb प्रारंभ-> Run-> services.msc सेवाओं की सूची के माध्यम से स्क्रॉल करें जब तक आपको SQL सर्वर नहीं मिलता। राइट-क्लिक->
गुण-

1
इसके अलावा, क्या आपने सिर्फ एक मैदान चलाने की कोशिश की है CREATE DATABASE [test1]; GO?
swasheck

जवाबों:


19

आपको अनुमतियाँ त्रुटि मिल रही हैं। खाता जो SQL सर्वर चला रहा है उस फ़ोल्डर पर आवश्यक अधिकार नहीं है जिसमें डेटाबेस फ़ाइलें शामिल होंगी।

आपको वह खाता देना होगा जो SQL सर्वर चला रहा है (आपका खाता नहीं) C: \ Program Files \ Microsoft SQL Server \ MSSQL10.SQLEXPRESS \ MSSQL \ DATA का पूर्ण नियंत्रण।


हां, समस्या यह थी कि उपयोगकर्ता सेवा चला रहा था! :) धन्यवाद !
thiagocfb

सामान्य SQL सर्वर विंडो सेवा में Network Serviceखाते के अंतर्गत चलाते हैं। यदि आपके पीसी पर भी ऐसा है तो इस खाते के लिए उपयुक्त निर्देशिकाओं पर उपयुक्त अधिकारों को संशोधित करना होगा।
आरबीटी

3
प्रारंभिक अनुलग्नक ऑपरेशन के लिए , गैर-व्यवस्थापक उपयोगकर्ता के रूप में SSMS gui चलाते समय कम से कम, SSMS चलाने वाले उपयोगकर्ता को उस फ़ोल्डर में अनुमतियाँ भी होनी चाहिए। SSMS चलाने वाले प्रशासक के रूप में रनिंग इन-एटीटैक इसे हल करता है, और फिर आप बाद में मुद्दों के बिना गैर-व्यवस्थापक के रूप में चला सकते हैं।
tbone

6

हमारे टिप्पणी थ्रेड के आधार पर ऐसा लगता है कि आप अपने आप को स्थापित करने के दौरान थोड़ा बग़ल में हो सकते हैं। इंस्टॉलर आपको अपना डिफ़ॉल्ट डेटा निर्देशिका चुनने की अनुमति देता है और (मैं मान सकता हूं ) उस निर्देशिका पर उचित अनुमतियाँ सेट करता है जो आपके द्वारा निर्दिष्ट सेवा खाते के लिए है।

आपके CREATE DATABASEकथन में आप किसी स्थान को निर्दिष्ट कर रहे हैं, लेकिन क्या वह स्थान था जिसे मूल सेटअप में निर्दिष्ट किया गया था? क्या सेवा खाता बदल गया है?

इसका परीक्षण करने का एक तरीका सिर्फ एक सामान्य दौड़ना है

CREATE DATABASE [test1]; 
GO

यदि आपको वही त्रुटि मिलती है, तो शायद सेवा खाता बदल गया है या NTFS अनुमतियों के बारे में कुछ बदल गया है।

एक रिज़ॉल्यूशन पथ (टिप्पणी स्ट्रिंग पर आधारित भी) यह पुष्टि करने के लिए है कि SQL सर्वर चलाने वाली सेवा में निर्दिष्ट करने वाले पथ पर R / W अनुमतियाँ हैं। यह करने के लिए:

प्रारंभ-> रन-> services.msc-> SQL सर्वर-> राइट-क्लिक-> गुण-> टैब मिलने पर सेवाओं की सूची में स्क्रॉल करें।

अब जाकर यह सुनिश्चित करें कि उस निर्देशिका के पास उस खाते की उपयुक्त अनुमति है जो उसे करने की आवश्यकता है।


2

लगता है कि आपूर्ति पथ में गलत स्थान हैं, इसलिए, यह फ़ोल्डर ट्री से मेल नहीं खा रहा है।
Sql सर्वर एक गैर-मौजूदा पथ नहीं बनाएगा।

संपादित करें :
आपकी मूल पोस्ट कहती है:

...\Microsoft SQL         Server\...
...\Microsoft SQL     Server\...

और मुझे लगता है कि यह मौजूदा रास्ते नहीं हैं, और जैसा कि वे कॉलन द्वारा शोकित हैं, यह प्रासंगिक है कि कितने स्थान हैं।


रिक्त स्थान की गलत संख्या? कहाँ पे ? अगर मैं अपनी फ़ाइल एक्सप्लोरर पर इस पथ को कॉपी और पेस्ट कर दूं तो यह इस फ़ोल्डर में ठीक @ @ @ तक पहुंच जाएगा

जब आप पथ खोलते हैं तो @thiagocfb क्या आप उन फ़ाइलों को देखते हैं?
स्वस्तिक

में अपने "पेस्ट" यदि आप एक मामले में 9 वर्ण और अन्य में 5 अक्षर हो, के बीच Microsoft SQLऔर Server, और यह मेरे लिए अजीब क्योंकि normaly यह केवल एक अंतरिक्ष चरित्र होना चाहिए था। अब यह दिखाई नहीं दे रहा है क्योंकि आपकी पोस्ट

@swasheck मैं कई .mdf फाइलें देखता हूं, test1.mdf नहीं, यह वही है जिसे मैं इस क्वेरी के साथ बनाने की कोशिश कर रहा हूं

@Luis Siquot ओह, मैं देख रहा हूँ, जबकि गलती के लिए कोड के रूप में दिखाया जा रहा है की स्थापना की मेरी गलती हो गई, सिर के लिए धन्यवाद!

0

उपरोक्त स्क्रिप्ट जो आप अपने प्रश्न अनुभाग में पोस्ट करते हैं वह सही है। यह संभव हो सकता है कि FILENAME में आपके द्वारा उल्लेखित फ़ाइल पथ गलत हो सकता है।

कृपया नीचे दी गई स्क्रिप्ट का उपयोग करें। यह बस काम करता है तो सुनिश्चित करें कि आप अपनी स्क्रिप्ट में जिस फ़ाइल पथ का उपयोग करते हैं।

Use Master
go

CREATE DATABASE test1 ON  PRIMARY 
( NAME = N'test1', 
  FILENAME = N'D:\test1.mdf', 
  SIZE = 70656KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1014KB)
 LOG ON 
( NAME = N'test1_log', 
  FILENAME = N'D:\test1_log.ldf', 
  SIZE = 164671KB , MAXSIZE = 1048GB , FILEGROWTH = 10%)
GO
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.