Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

क्या मैं डेटाबेस तालिका के कॉलम को अपडेट करने के लिए SQLCLR संग्रहीत प्रक्रिया का उपयोग कर सकता हूं (कुछ संकलित डीएल का उपयोग करके)

आप कर सकते हैं सी # से एन्क्रिप्शन को कॉल करने के लिए SQLCLR का उपयोग करें, हालांकि यह गलत तरीका है। यदि आपको एक कस्टम एल्गोरिथम करने की आवश्यकता है, तो आपको इसे SQLCLR फ़ंक्शन में इनकैप्सुलेट करना चाहिए ताकि इसका उपयोग UPDATE स्टेटमेंट या यहां तक ​​कि INSERT या SELECT या कहीं भी किया जा सके। कुछ इस तरह:

public class SP
{
  [Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
  public static SqlString EncryptByAES(SqlString TextToEncrypt)
  {
     return DoSomething(TextToEncrypt.Value);
  }
}

फिर आप उस फ़ंक्शन का उपयोग इस प्रकार कर सकते हैं:

UPDATE tb
SET    tb.FieldA = EncryptByAES(tb.FieldA)
FROM   dbo.TableName tb
WHERE  tb.FieldA some_test_to_determine_that_FieldA_is_not_alreay_encrypted;

लेकिन , कस्टम एन्क्रिप्शन एल्गोरिथम लिखने से पहले, आप कई अंतर्निहित युग्मित ENCRYPTBY / DECRYPTBY फ़ंक्शंस की जाँच करना चाह सकते हैं जो ठीक वही कर सकते हैं जो आपको चाहिए:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSMS का उपयोग करके Windows प्रमाणीकरण के साथ स्थानीय SQL सर्वर से कनेक्ट करने में असमर्थ

  2. SQL सर्वर (T-SQL) में डेटाबेस मेल खाता हटाएं

  3. SQL सर्वर 2005 पहचान अपने आप बढ़ रही है

  4. SQL सर्वर का उपयोग कैसे करें ऑलवेजऑन फीचर्स

  5. एसक्यूएल में सशर्त ऑपरेटर जहां क्लॉज