वर्तमान में मैं एसक्यूएल सर्वर में उपयोगकर्ता के विंडोज खाते को nvarchar (10) के रूप में संग्रहीत कर रहा हूं, क्या यह उपयोगकर्ता आईडी स्टोर करने का सही तरीका है? डेटा प्रकार क्या होना चाहिए? या मुझे उपयोगकर्ता आईडी भी स्टोर करना चाहिए?मुझे डेटाबेस में विंडोज उपयोगकर्ता आईडी कैसे स्टोर करना चाहिए?
उत्तर
विंडोज एनटी उपयोगकर्ता पहचान एसआईडी, security-identifier के रूप में जाना जाता है। यह स्ट्रिंग प्रस्तुति SID String Format Syntax में निर्दिष्ट है और मार्शल प्रतिनिधित्व SID--Packet Representation में निर्दिष्ट है। यदि आप डेटाबेस में एक एसआईडी स्टोर करना चाहते हैं, तो sys.databases.owner_sid
फ़ील्ड के समान प्रतिनिधित्व का उपयोग करें: varbinary (85)। लॉगिन एसआईडी का उपयोग करने के लिए SUSER_SID
(जो भी लौटाता है ... varbinary(85)
)।
विशेष रूप से लॉगिन नाम (domain\user
या [email protected]
) के रूप में नहीं दुकान पहचान के बाद से इन परिवर्तन रास्ता अधिक बार आपकी अपेक्षा से, विशेष रूप से बड़े निगमों में करते हैं। मेरा 10 वर्षों में 5 गुना बदल गया।
यह एक बहुत ही जटिल सवाल है।
तकनीकी रूप से नाम संग्रहित नहीं करते हैं। आईडी को स्टोर करें, जो संयोग से किसी भी तरह से एक GUID है।
इसका मतलब है कि आप सुरक्षित हैं जब आप खाते का नाम बदलते हैं और यही वह है जो विन्डोज करता है। जब आप किसी फ़ाइल पर अधिकार खोलते हैं तो कभी भी नाम दिखने में एक सेकंड लगता है? और पहले एक नंबर दिखाता है? ऐसा इसलिए है क्योंकि डोमेन नियंत्रक से नाम प्राप्त करने के लिए विंडोज़ थोड़ा सा लेता है।
सिम्पल खाता नाम संग्रहित करना है, लेकिन इसका मतलब है कि आप नाम पर "मृत" हैं, जो काफी दर होनी चाहिए, ओह। मुझे लगता है कि ज्यादातर समाधान इसके लिए जाते हैं;)
"आईडी 'GUID' वैसे भी टाइप होनी चाहिए।" जरुरी नहीं। आप 'एसआईडी' या 'GUID' निर्दिष्ट कर सकते हैं। यदि आपके पास बड़ी कंपनी है, तो एक 'GUID' एकाधिक डोमेन में अनूठी होगी, जबकि' एसआईडी 'डोमेन पर अद्वितीय होने की गारंटी नहीं है। लेकिन 'एसआईडी' विंडोज एनटी के लिए पिछड़ा संगत है। – GibralterTop
वर्तमान उपयोगकर्ता आईडी प्राप्त करने पर (HERE देखें), char(30)
का उपयोग किया जाता है।
तो, कम से कम, आपको लंबाई 30 तक बदलनी चाहिए!
यह userid
में डेटा के प्रकार पर निर्भर करता है यदि यह किसी अन्य तालिका से मैं आईडी करता हूं, तो इसे पैरांट टेबल में डेटाटाइप के अनुसार सहेजें। यदि यह विंडोज उपयोगकर्ता आईडी है तो इसे nvarchar के रूप में सहेजें लेकिन सुनिश्चित करें कि लॉगस्ट उपयोगकर्ता आईडी को समायोजित किया गया है। जैसे nvarchar (50)
या चाहिए मैं भी दुकान
userids Stack overflow
में नया खाता बनाना है। यह उपयोगकर्ता आईडी स्वीकार करता है जिसका अर्थ है कि यह Passport Authentication
का उपयोग करता है। लेकिन फिर भी यह क्वेरी/उत्तरों/टिप्पणियों/झंडे आदि के बीच संबंध के लिए डेटाबेस में उपयोगकर्ता की जानकारी रखता है
डेटा प्रकार क्या होना चाहिए?
अच्छा, यह आपकी आवश्यकता पर निर्भर करता है। गैर अंग्रेजी लैगेज के मामले में। यह NVarchar(50)
- 1. क्या मुझे डेटाबेस में एनम आईडी/मानों को स्टोर करना चाहिए या सी # गणना?
- 2. मुझे संवेदनशील चर कहां स्टोर करना चाहिए?
- 3. क्या मुझे अपने डेटाबेस या PHP सरणी में यूएस स्टेट्स स्टोर करना चाहिए?
- 4. मुझे जेएसओएन को रेडिस में कैसे स्टोर करना चाहिए?
- 5. ओरेकल में मुझे GUID कैसे स्टोर करना चाहिए?
- 6. डेटाबेस में, आपको व्युत्पन्न डेटा कब स्टोर करना चाहिए?
- 7. मुझे जावा में डेटाबेस इनपुट को कैसे स्वच्छ करना चाहिए?
- 8. क्या मुझे ओपनिड claim_id एन्क्रिप्टेड स्टोर करना चाहिए?
- 9. Django: मुझे धन मूल्य कैसे स्टोर करना चाहिए?
- 10. मुझे अपना एप्लिकेशन डेटा कहां स्टोर करना चाहिए?
- 11. मुझे SQL सर्वर डेटाबेस में लघु टेक्स्ट स्ट्रिंग्स को कैसे स्टोर करना चाहिए?
- 12. मुझे आईओएस में SQLite डेटाबेस कैसे सुरक्षित करना चाहिए?
- 13. मुझे बगजिला में उपयोगकर्ता कहानियों को कैसे लागू करना चाहिए?
- 14. क्या मुझे डेटटाइम्स को डेटाबेस में लांग (टिक) के रूप में स्टोर करना चाहिए?
- 15. मुझे अपनी कस्टम कक्षाओं को कैसे स्टोर करना चाहिए?
- 16. क्या मुझे अपनी छवियों को डेटाबेस या फ़ोल्डर में स्टोर करना चाहिए?
- 17. मुझे डेटाबेस कनेक्शन स्ट्रिंग कहां स्टोर करनी चाहिए?
- 18. रिकॉर्ड को संग्रहीत करने के लिए मुझे किस डेटाबेस का उपयोग करना चाहिए, और मुझे इसका उपयोग कैसे करना चाहिए?
- 19. मुझे एएसपी.NET एमवीसी साइट में प्रमाणीकरण कैसे करना चाहिए?
- 20. क्या मुझे सार्वजनिक रूप से उपयोगकर्ता आईडी का पर्दाफाश करना चाहिए?
- 21. क्या मुझे अपने उपयोगकर्ताओं से डेटाबेस आईडी को खराब करना चाहिए?
- 22. क्या मुझे संग्रहीत मार्कडाउन को HTML में परिवर्तित करना चाहिए, या क्या मुझे बस HTML स्टोर करना चाहिए?
- 23. मुझे हेरोोकू पर संवेदनशील फाइलों को कहां स्टोर करना चाहिए?
- 24. मुझे विंडोज विस्टा पीसी पर लिनक्स कैसे स्थापित करना चाहिए?
- 25. मुझे किस डीबी का उपयोग करना चाहिए?
- 26. मुझे अपना गेम लेवल स्टेटस कहां स्टोर करना चाहिए?
- 27. मुझे डेटाबेस का उपयोग कब शुरू करना चाहिए?
- 28. क्या मुझे अपने डेटाबेस में ओपनआईडी को एन्क्रिप्ट करना चाहिए?
- 29. रेल पर रूबी: मुझे मॉड्यूल कहां स्टोर करना चाहिए?
- 30. क्या डेटाबेस में समय क्षेत्र आईडी को स्टोर करना सुरक्षित है या वे बदल सकते हैं?
जहां तक मैं उत्तर से समझता हूं, अगर मैं कुछ प्रक्रिया के साथ उपयोगकर्ता को जोड़ने के लिए उपयोगकर्ता आईडी का उपयोग करूँगा, तो मुझे एसआईडी का उपयोग करना चाहिए, लेकिन अगर मैं एक लेबल की तरह उपयोगकर्ता आईडी का उपयोग करूँगा, तो यह एक बेहतर विकल्प है शुद्ध उपयोगकर्ता आईडी के साथ जाने के लिए क्योंकि एसआईडी मेरे डेटाबेस को पढ़ने में कठोर बनाता है, क्या मैं सही हूँ? – HOY
व्यवस्थापक को छोड़कर उपयोगकर्ता को एसआईडी प्रदर्शित करना कोई उपयोग नहीं है। हालांकि आप टी-एसक्यूएल में ['SUSER_SNAME (sid)'] (http://msdn.microsoft.com/en-us/library/ms174427.aspx) का उपयोग करके या ['SecurityIdentifier का उपयोग करके एक एसआईडी को हमेशा एक नाम में परिवर्तित कर सकते हैं। अनुवाद (टाइपोफ (एनटीएसीसीएउंट)) '] (http://msdn.microsoft.com/en-us/library/system.security.principal.securityidentifier.translate.aspx) सी # में। –