private void cmdEncryptObjects_Click(object sender, EventArgs e) { try { DialogResult dlgRes = MessageBox.Show("Are you sure you want to encrypt -> " + cboComboBox.Text + "\n\n\nPlease confirm if a backup has been taken before this operation!", "Please Confirm", MessageBoxButtons.YesNo); if (dlgRes == DialogResult.Yes) { dlgRes = MessageBox.Show("Please note that the encryption is not reversible. Please confirm that you want to encrypt -> " + cboComboBox.Text + "\n\n\nPlease confirm if a backup has been taken before this operation!", "Please Confirm", MessageBoxButtons.YesNo); } if (dlgRes == DialogResult.No) { return; } SqlConnectionInfo sci = new SqlConnectionInfo(txtServerName.Text); if (!chkWindowsAuth.Checked) { sci.UseIntegratedSecurity = false; sci.UserName = txtUserID.Text; sci.Password = txtPassword.Text; } else { sci.UseIntegratedSecurity = true; } var serverConnection = new ServerConnection(sci); var srv = new Server(serverConnection); try // Check to see if server connection details are ok. { var db = new Database(); db = srv.Databases[cboComboBox.Text.TrimStart('[').TrimEnd(']')]; if (db == null) { throw new Exception("Error! Unable to select"); } Console.WriteLine("Encrypted stored procedures: "); var sp = new StoredProcedure(); for (int i = 0; i < db.StoredProcedures.Count; i++) { sp = db.StoredProcedures[i]; if (!sp.IsSystemObject) // Exclude System stored procedures { if (!sp.IsEncrypted) // Exclude already encrypted stored procedures { sp.TextMode = false; sp.IsEncrypted = true; sp.TextMode = true; try { sp.Alter(); } catch (Exception excep) { _logger.Info(excep, "Encryption failed for -> {0}, error- -> {1}", sp.Name, excep.Message); } Console.WriteLine(" " + sp.Name); // display name of the SP. _logger.Info("Encrypting Proc =>{0}", sp.Name); } } } var udfs = new UserDefinedFunction(); for (int i = 0; i < db.UserDefinedFunctions.Count; i++) { udfs = db.UserDefinedFunctions[i]; if (!udfs.IsSystemObject) { if (!udfs.IsEncrypted) { udfs.TextMode = false; udfs.IsEncrypted = true; udfs.TextMode = true; try { udfs.Alter(); } catch (Exception excep) { _logger.Info(excep, "Encryption failed for -> {0}, error- -> {1}", udfs.Name, excep.Message); } Console.WriteLine(" " + udfs.Name); _logger.Info("Encrypting UDF =>{0}", udfs.Name); } } } Microsoft.SqlServer.Management.Smo.View viewobj = null; for (int i = 0; i < db.Views.Count; i++) { viewobj = db.Views[i]; if (!viewobj.IsSystemObject) { if (!viewobj.IsEncrypted) { viewobj.TextMode = false; viewobj.IsEncrypted = true; viewobj.TextMode = true; try { viewobj.Alter(); } catch (Exception excep) { _logger.Info(excep, "Encryption failed for -> {0}, error- -> {1}", viewobj.Name, excep.Message); } Console.WriteLine(" " + viewobj.Name); // display name of the SP. _logger.Info("Encrypting View =>{0}", viewobj.Name); } } } MessageBox.Show("Process has completed succssfully. Please refer to the application logs for more information", "Operation Complete", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception InnerEx) { _logger.Info("Server details are incorrect;" + " please retry with proper details"); MessageBox.Show("Error\n" + "Server details are incorrect;" + "\nPlease retry with proper details.\n\n" + InnerEx.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { _logger.Fatal(ex, "Unable to connect to the DB"); MessageBox.Show("Error\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }