2011-02-07 7 views
5

है हमारे पास हमारे डेटाबेस में बहुत सारे डीबीयूसर हैं। हमें उन सभी उपयोगकर्ताओं को डेटाबेस से साफ करना होगा। जब मैं डीबी से उपयोगकर्ता छोड़ने का प्रयास किया यह निम्नलिखित त्रुटि के कारण विफलसामान्यीकृत क्वेरी यह पता लगाने के लिए कि डेटाबेस उपयोगकर्ता का स्कीमा

संदेश 15138, स्तर 16, राज्य 1, पंक्ति 2 डेटाबेस प्रिंसिपल डेटाबेस में एक स्कीमा मालिक है, और नहीं किया जा सकता गिरा दिया।

तो मुझे इसके लिए समाधान मिला। मैंने स्कीमा के स्वामित्व को dbo में बदल दिया। अब मैं स्क्रिप्ट

SELECT name FROM sys.schemas WHERE principal_id = USER_ID('myUser') 
ALTER AUTHORIZATION ON SCHEMA::SchemaName TO dbo 
GO 
DROP USER myUser 

नीचे का उपयोग करके उपयोगकर्ता ड्रॉप कर सकते हैं लेकिन मैं उन के एक नंबर तो मैं सामान्यीकृत स्क्रिप्ट उत्पन्न करने के लिए की जरूरत है ड्रॉप करना चाहता हूँ। मैं एसक्यूएल सर्वर का उपयोग कर रहा 2008

+1

आप डेटाबेस का उपयोग कर रहे निर्दिष्ट करना चाहिए। –

उत्तर

7

यह आपको जो उन्हें ही उपयोगकर्ताओं के खिलाफ स्कीमा की एक पूरी सूची दे देंगे:

SELECT db.name AS [DB User], s.name AS [Schema] 
FROM sys.database_principals db 
JOIN sys.schemas s ON s.principal_id = db.principal_id 
संबंधित मुद्दे