प्रारंभ करने के लिए, अनुदान एक स्पष्ट कारण के लिए गलत है: यह अनुदानकर्ता के लिए [PUBLIC]
नाम का उपयोग करता है, लेकिन यह [public]
होना चाहिए। एक केस संवेदनशील स्थापना पर नाम हल नहीं होगा।
अब आपके प्रश्न के बारे में: AS [sa]
भाग अनुमति देने की कार्रवाई के लिए प्रासंगिक है, यह अनुदानकर्ता को स्थानांतरित नहीं करता है।
मैं, [sa]
के नाम पर, [public]
समूह के सदस्यों को [TSQL Default TCP]
समाप्ति बिंदु को जोड़ने का विशेषाधिकार देना: यह कुछ इस तरह पढ़ी।
विशेष रूप से, यह नहीं मतलब है कि अनुदान ([public]
के सदस्य) [sa]
को ऊपर उठाया जा करने के लिए कर रहे हैं नहीं करता है। कनेक्ट अनुमति अनुदान एक आवश्यक है लेकिन डेटाबेस से कनेक्ट करने के लिए पर्याप्त विशेषाधिकार नहीं है। अनुदानदाता को अभी भी डेटाबेस तक पहुंचने की अनुमति की आवश्यकता होगी (यानी उपयोगकर्ता को डेटाबेस में लॉग इन करने के लिए मैप किया गया है)। साथ ही, [public]
सर्वर प्रिंसिपल को कनेक्ट अनुमति देने के लिए BUILTIN\Everyone
(या BUILTIN\ANONYMOUS LOGIN
) के लिए लॉगिन बनाने के बराबर नहीं है ...) सुरक्षा प्रिंसिपल (या अन्य built-in account) ... दूसरे शब्दों में एक एनटी उपयोगकर्ता जिसका लॉगिन नहीं है (एनटी समूह सदस्यता के माध्यम से स्पष्ट या निहित) SQL सर्वर में अभी भी उदाहरण से कनेक्ट करने में सक्षम नहीं होगा।
एक तरफ ध्यान दें के रूप में, किसी भी ब्रांड के नए स्थापना पर निम्न क्वेरी चल पता चलता है कि अनुमति डिफ़ॉल्ट T-SQL endpoint पहले से ही [public]
को दी जाती है से कनेक्ट करने के:
select s.name as grantee,
e.name as endpoint,
p.permission_name as permission,
p.state_desc as state_desc
from sys.server_permissions p
join sys.server_principals s on s.principal_id = p.grantee_principal_id
join sys.endpoints e on p.major_id = e.endpoint_id
where p.type='CO'
स्रोत
2012-02-20 23:28:17