private void CopyTableTest(string connStr, string sourceTable, string targetTable, string expectedResults) { using (SqlConnection srcConn = new SqlConnection(connStr)) { srcConn.Open(); SqlCommand cmd = srcConn.CreateCommand(); cmd.CommandText = "select * from " + sourceTable; using (SqlDataReader reader = cmd.ExecuteReader()) using (SqlBulkCopy bc = new SqlBulkCopy(connStr)) { bc.DestinationTableName = targetTable; bc.WriteToServer(reader); } cmd.CommandText = "select * from " + targetTable; DataTestUtility.AssertEqualsWithDescription( expectedResults, UdtTestHelpers.DumpReaderString(cmd.ExecuteReader()), "Unexpected bulk copy results."); } }
public void Dispose() { // Do NOT remove certificate for concurrent consistency. Certificates are used for other test cases as well. SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(DataTestUtility.TcpConnStr); using (SqlConnection conn = CertificateUtility.GetOpenConnection(false, sb)) { using (SqlCommand cmd = new SqlCommand($"drop table {encryptedTableName}", conn)) { cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); cmd.CommandText = $"drop procedure {encryptedProcedureName}"; cmd.ExecuteNonQuery(); } } // Only use traceoff for non-sysadmin role accounts, Azure accounts does not have the permission. if (DataTestUtility.IsNotAzureServer()) { CertificateUtility.ChangeServerTceSetting(true, sb); } }
public EnclaveAzureDatabaseTests() { if (DataTestUtility.IsEnclaveAzureDatabaseSetup()) { sqlColumnEncryptionAzureKeyVaultProvider = new SqlColumnEncryptionAzureKeyVaultProvider(new SqlClientCustomTokenCredential()); if (!SQLSetupStrategyAzureKeyVault.IsAKVProviderRegistered) { SQLSetupStrategyAzureKeyVault.RegisterGlobalProviders(sqlColumnEncryptionAzureKeyVaultProvider); } akvColumnMasterKey = new AkvColumnMasterKey(DatabaseHelper.GenerateUniqueName("AKVCMK"), akvUrl: DataTestUtility.AKVUrl, sqlColumnEncryptionAzureKeyVaultProvider, DataTestUtility.EnclaveEnabled); databaseObjects.Add(akvColumnMasterKey); akvColumnEncryptionKey = new ColumnEncryptionKey(DatabaseHelper.GenerateUniqueName("AKVCEK"), akvColumnMasterKey, sqlColumnEncryptionAzureKeyVaultProvider); databaseObjects.Add(akvColumnEncryptionKey); SqlConnectionStringBuilder connString1 = new SqlConnectionStringBuilder(DataTestUtility.EnclaveAzureDatabaseConnString); connString1.InitialCatalog = "testdb001"; SqlConnectionStringBuilder connString2 = new SqlConnectionStringBuilder(DataTestUtility.EnclaveAzureDatabaseConnString); connString2.InitialCatalog = "testdb002"; connStrings.Add(connString1.ToString()); connStrings.Add(connString2.ToString()); foreach (string connString in connStrings) { using (SqlConnection connection = new SqlConnection(connString)) { connection.Open(); databaseObjects.ForEach(o => o.Create(connection)); } } } }