मैं SQL Server 2012 के साथ काम कर रहा हूं। मैं यह जांचना चाहता हूं कि क्या उपयोगकर्ता डेटाबेस में जोड़ने से पहले मौजूद है।
यह मैंने परीक्षण किया है:
USE [MyDatabase]
GO
IF NOT EXISTS (SELECT name
FROM [sys].[server_principals]
WHERE name = N'IIS APPPOOL\MyWebApi AppPool')
Begin
CREATE USER [IIS APPPOOL\MyWebApi AppPool]
FOR LOGIN [IIS APPPOOL\MyWebApi AppPool] WITH DEFAULT_SCHEMA=[dbo]
end
ALTER ROLE [db_owner] ADD MEMBER [IIS APPPOOL\MyWebApi AppPool]
GO
लेकिन, SELECT name FROM [sys].[server_principals]
यदि उपयोगकर्ता मौजूद है तो यह कोड वापस नहीं आता है MyDatabase
।
यदि कोई उपयोगकर्ता मौजूद है तो मैं कैसे जांच सकता हूं MyDatabase
?
1
ध्यान रखें कि sys.database_principals में भूमिकाएँ और उपयोगकर्ता एक साथ होते हैं, इसलिए किसी को उपयोगकर्ताओं को फ़िल्टर करना नहीं भूलना चाहिए। मैं आसान संदर्भ के लिए वर्तमान में चिह्नित उत्तर के खिलाफ अंतिम प्रश्न को अपडेट कर रहा हूं।
—
मोइज़ टंकीवाला