private void _cmsi_Users_viewGroupMembers_Click(object sender, EventArgs e) { Cursor = Cursors.WaitCursor; UltraGrid grid = (UltraGrid)((ContextMenuStrip)((ToolStripItem)sender).Owner).SourceControl; Sql.User group = new Sql.User(grid.ActiveRow.Cells[colPrincipalName].Text, new Sid(grid.ActiveRow.Cells[colSid].Value as byte[]), DescriptionHelper.GetEnumDescription(Sql.ServerPrincipalTypes.WindowsGroup), Sql.User.UserSource.Snapshot); int snapshotid = (int)grid.ActiveRow.Cells[colSnapshotId].Value; Sql.User user = Forms.Form_SelectGroupMember.GetUser(snapshotid, group); if (user != null) { string server = grid.ActiveRow.Cells[colConnection].Text; Sql.RegisteredServer registeredServer = Program.gController.Repository.RegisteredServers.Find(server); Program.gController.ShowRootView(new Utility.NodeTag(new Data.PermissionExplorer(registeredServer, snapshotid, user, Views.View_PermissionExplorer.Tab.UserPermissions), Utility.View.PermissionExplorer)); } Cursor = Cursors.Default; }
internal controlConfigurePolicyVulnerabilities(ConfigurePolicyControlType state) { // SQLsecure 3.1 (Anshul Aggarwal) - Represents current state of control - 'Configure Security Check' or 'Export/Import Policy'. m_ControlType = state; InitializeComponent(); ultraTabControl1.DrawFilter = new HideFocusRectangleDrawFilter(); _toolStripButton_ColumnChooser.Image = AppIcons.AppImage16(AppIcons.Enum.GridFieldChooser); _toolStripButton_GroupBy.Image = AppIcons.AppImage16(AppIcons.Enum.GridGroupBy); _toolStripButton_Save.Image = AppIcons.AppImage16(AppIcons.Enum.GridSaveToExcel); _toolStripButton_Print.Image = AppIcons.AppImage16(AppIcons.Enum.Print); // load value lists for grid display ValueListItem listItem; ValueList severityValueList = new ValueList(); severityValueList.Key = Utility.Constants.POLICY_METRIC_VALUE_LIST_SERVERITY; severityValueList.DisplayStyle = ValueListDisplayStyle.DisplayText; ultraGridPolicyMetrics.DisplayLayout.ValueLists.Add(severityValueList); severityValueList.ValueListItems.Clear(); listItem = new ValueListItem(Utility.Policy.Severity.Ok, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Ok)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.check_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Low, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Low)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.LowRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Medium, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Medium)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.MediumRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.High, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.High)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.HighRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Undetermined, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Undetermined)); listItem.Appearance.Image = AppIcons.AppImage16(AppIcons.Enum.Unknown); listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); ValueList enabledValueList = new ValueList(); enabledValueList.Key = Utility.Constants.POLICY_METRIC_VALUE_LIST_ENABLED; enabledValueList.DisplayStyle = ValueListDisplayStyle.DisplayText; ultraGridPolicyMetrics.DisplayLayout.ValueLists.Add(enabledValueList); listItem = new ValueListItem(true, "Yes"); enabledValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(false, "No"); enabledValueList.ValueListItems.Add(listItem); // SQLsecure 3.1 (Anshul Aggarwal) - Change control state based on current control usage type. RefreshState(); }
public Form_ExplanationNotes(int policyId, int assessmentId, int metricId, string serverName) { InitializeComponent(); this.Description = DESCRIPTION; m_PolicyId = policyId; m_AssessmentId = assessmentId; m_MetricId = metricId; m_ServerName = serverName; _toolStripButton_ExplanationNotesSave.Image = AppIcons.AppImage16(AppIcons.Enum.GridSaveToExcel); _toolStripButton_ExplanationNotesPrint.Image = AppIcons.AppImage16(AppIcons.Enum.Print); // hook the toolbar labels to the grids so the heading can be used for printing _grid_ExplanationNotes.Tag = _label_ExplanationNotes; // hook the grids to the toolbars so they can be used for button processing _headerStrip_ExplanationNotes.Tag = _grid_ExplanationNotes; // load value lists for grid display ValueList severityValueList = new ValueList(); severityValueList.Key = valueListSeverity; severityValueList.DisplayStyle = ValueListDisplayStyle.Picture; severityValueList.Appearance.ImageVAlign = VAlign.Top; _grid_ExplanationNotes.DisplayLayout.ValueLists.Add(severityValueList); ValueListItem listItem; severityValueList.ValueListItems.Clear(); listItem = new ValueListItem(Utility.Policy.Severity.Ok, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Ok)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.check_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Low, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Low)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.LowRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Medium, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Medium)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.MediumRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.High, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.High)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.HighRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Undetermined, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Undetermined)); listItem.Appearance.Image = AppIcons.AppImage16(AppIcons.Enum.Unknown); listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); _grid_ExplanationNotes.DrawFilter = new Utility.HideFocusRectangleDrawFilter(); loadDataSource(); }
private void PrintConnections() { foreach (var connection in Table.MapConnections) { var isTunnel = connection.Connection.IsTunnel ? "Тунель," : ""; var isFree = connection.IsFree ? "Свободен" : $"владелец: {connection.Owner.Color}, "; var jokers = (connection.Connection.JokersRequired != null && connection.Connection.JokersRequired > 0) ? $"требуется {connection.Connection.JokersRequired} паровозов" : ""; Console.WriteLine($"{connection.Connection.Id}: " + $"{connection.Connection.City1.Name} - " + $"{connection.Connection.City2.Name}, " + $"цвет={DescriptionHelper.GetEnumDescription((CardColor)connection.Connection.Color)}, " + $"длина={connection.Connection.Length}, " + $"{isTunnel} " + $"{isFree} " + $"{jokers}"); } }
private void _contextMenuStrip_Users_Opening(object sender, CancelEventArgs e) { UltraGrid grid = (UltraGrid)((ContextMenuStrip)sender).SourceControl; _cmsi_Users_viewGroupMembers.Visible = _cmsi_Users_showPermissions.Visible = _toolStripSeparator_Server.Visible = true; if (grid.ActiveRow != null) { _cmsi_Users_viewGroupMembers.Enabled = (grid.ActiveRow.Cells[colPrincipalType].Text == DescriptionHelper.GetEnumDescription(Sql.ServerPrincipalTypes.WindowsGroup)); _cmsi_Users_showPermissions.Enabled = (grid.ActiveRow.Cells[colSid].Value != null); } else { _cmsi_Users_viewGroupMembers.Enabled = _cmsi_Users_showPermissions.Enabled = false; } _cmsi_Users_viewGroupByBox.Checked = !grid.DisplayLayout.GroupByBox.Hidden; }
public ControlImportExportPolicyVulnerabilities() { InitializeComponent(); // Hide all radio buttons for single selection group box radioButton1.Visible = false; radioButton2.Visible = false; radioButton3.Visible = false; radioButton4.Visible = false; radioButton5.Visible = false; radioButton6.Visible = false; radioButton7.Visible = false; radioButton8.Visible = false; // Hide single selectin group box groupBox_TriggerSingle.Visible = false; // Hide all checkboxes for multiple selection group box checkBox1.Visible = false; checkBox2.Visible = false; checkBox3.Visible = false; checkBox4.Visible = false; checkBox5.Visible = false; checkBox6.Visible = false; checkBox7.Visible = false; checkBox8.Visible = false; // Hide multiple selection group box groupBox_CriteriaMultiple.Visible = false; // Hide User Entered Multiple Selection group box groupBox_CriteriaUserEnterMultiple.Visible = false; // Hide User Entered Single Selection group box groupBox_CriteriaUserEnterSingle.Visible = false; // Hide Enabled Disabled Only group box groupBox_TriggerDisabledEnabledOnly.Visible = false; radioButton_SeverityCritical.Text = Utility.DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.High); radioButton_SeverityMedium.Text = Utility.DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Medium); radioButton_SeverityLow.Text = Utility.DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Low); _toolStripButton_ColumnChooser.Image = AppIcons.AppImage16(AppIcons.Enum.GridFieldChooser); _toolStripButton_GroupBy.Image = AppIcons.AppImage16(AppIcons.Enum.GridGroupBy); _toolStripButton_Save.Image = AppIcons.AppImage16(AppIcons.Enum.GridSaveToExcel); _toolStripButton_Print.Image = AppIcons.AppImage16(AppIcons.Enum.Print); // load value lists for grid display ValueListItem listItem; ValueList severityValueList = new ValueList(); severityValueList.Key = valueListSeverity; severityValueList.DisplayStyle = ValueListDisplayStyle.DisplayText; ultraGridPolicyMetrics.DisplayLayout.ValueLists.Add(severityValueList); severityValueList.ValueListItems.Clear(); listItem = new ValueListItem(Utility.Policy.Severity.Ok, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Ok)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.check_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Low, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Low)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.LowRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Medium, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Medium)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.MediumRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.High, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.High)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.HighRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Undetermined, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Undetermined)); listItem.Appearance.Image = AppIcons.AppImage16(AppIcons.Enum.Unknown); listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); ValueList enabledValueList = new ValueList(); enabledValueList.Key = valueListEnabled; enabledValueList.DisplayStyle = ValueListDisplayStyle.DisplayText; ultraGridPolicyMetrics.DisplayLayout.ValueLists.Add(enabledValueList); listItem = new ValueListItem(true, "Yes"); enabledValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(false, "No"); enabledValueList.ValueListItems.Add(listItem); }
private string databaseDetails() { Debug.Assert(Type == RuleType.Database); // Initialize the string builder objects. StringBuilder details = new StringBuilder(); if (m_FilterDetailsSubReport) { details.Append(FilterDetailsPrefixForSubReport); } else { details.Append(FilterDetailsPrefix); } //SQLSecure 3.1 (Barkha Khatri) populating strings based on servertype if (ServerType == ServerType.AzureSQLDatabase) { details.Append(AlwaysCollectedForAzureDB); } else { details.Append(AlwaysCollected); } StringBuilder dbDetails = new StringBuilder(); StringBuilder tblDetails = new StringBuilder(); StringBuilder tblMatchString = new StringBuilder(); StringBuilder viewDetails = new StringBuilder(); StringBuilder viewMatchString = new StringBuilder(); StringBuilder functionDetails = new StringBuilder(); StringBuilder functionMatchString = new StringBuilder(); List <string> otherObjs = new List <string>(); // Process each of the rules. foreach (DataCollectionFilter.Rule rule in m_Rules) { switch (rule.ObjectType) { case RuleObjectType.Database: dbDetails.Append(RuleDbPrefix); dbDetails.Append("All "); dbDetails.Append(DescriptionHelper.GetEnumDescription(rule.ObjectScope)); dbDetails.Append(" Databases"); if (!string.IsNullOrEmpty(rule.MatchString)) { dbDetails.Append(" with names matching '" + rule.MatchString + "'"); } if (m_Rules.Count > 1) { dbDetails.Append(RuleDbSuffix); } break; case RuleObjectType.Table: if (tblDetails.Length == 0) { tblDetails.Append(RuleTblPrefix); tblDetails.Append("All "); tblDetails.Append(DescriptionHelper.GetEnumDescription(rule.ObjectScope)); tblDetails.Append(" Tables"); } if (!string.IsNullOrEmpty(rule.MatchString)) { switch (tblMatchString.Length) { case 0: tblMatchString.Append(" with names matching '"); break; default: tblMatchString.Append(", "); break; } tblMatchString.Append(rule.MatchString); } break; case RuleObjectType.StoredProcedure: break; case RuleObjectType.View: if (viewDetails.Length == 0) { viewDetails.Append(RuleSpPrefix); viewDetails.Append("All "); viewDetails.Append(DescriptionHelper.GetEnumDescription(rule.ObjectScope)); viewDetails.Append(" Views"); } if (!string.IsNullOrEmpty(rule.MatchString)) { switch (viewMatchString.Length) { case 0: viewMatchString.Append(" with names matching '"); break; default: viewMatchString.Append(", "); break; } viewMatchString.Append(rule.MatchString); } break; case RuleObjectType.Function: if (functionDetails.Length == 0) { functionDetails.Append(RuleSpPrefix); functionDetails.Append("All "); functionDetails.Append(DescriptionHelper.GetEnumDescription(rule.ObjectScope)); functionDetails.Append(" Functions"); } if (!string.IsNullOrEmpty(rule.MatchString)) { switch (functionMatchString.Length) { case 0: functionMatchString.Append(" with names matching '"); break; default: functionMatchString.Append(", "); break; } functionMatchString.Append(rule.MatchString); } break; case RuleObjectType.ExtendedStoredProcedure: break; case RuleObjectType.User: break; case RuleObjectType.Role: break; case RuleObjectType.Assembly: otherObjs.Add("Assemblies"); break; case RuleObjectType.Certificate: otherObjs.Add("Certificates"); break; case RuleObjectType.FullTextCatalog: otherObjs.Add("Full Text Catalogs"); break; case RuleObjectType.Key: otherObjs.Add("Keys"); break; case RuleObjectType.UserDefinedDataType: otherObjs.Add("User-defined Data Types"); break; case RuleObjectType.XMLSchemaCollection: otherObjs.Add("XML Schema Collections"); break; case RuleObjectType.Synonym: otherObjs.Add("Synonyms"); break; case RuleObjectType.SequenceObject: otherObjs.Add("Sequence Objects"); break; default: Debug.Assert(false); break; } } // Fill the details string builder. //if (espDetail.Length > 0) //{ // details.Append(RuleDbPrefix); // details.Append(espDetail.ToString()); // details.Append(RuleDbSuffix); //} details.Append(dbDetails.ToString()); if (tblDetails.Length > 0 || viewDetails.Length > 0 || functionDetails.Length > 0 || otherObjs.Count > 0) { details.Append(RuleDbLastSuffix); } if (tblDetails.Length > 0) { details.Append(tblDetails.ToString()); if (tblMatchString.Length > 0) { details.Append(tblMatchString.ToString()); details.Append("'"); } details.Append(RuleTblSuffix); } if (viewDetails.Length > 0) { details.Append(viewDetails.ToString()); if (viewMatchString.Length > 0) { details.Append(viewMatchString.ToString()); details.Append("'"); } details.Append(RuleSpSuffix); } if (functionDetails.Length > 0) { details.Append(functionDetails.ToString()); if (functionMatchString.Length > 0) { details.Append(functionMatchString.ToString()); details.Append("'"); } details.Append(RuleSpSuffix); } if (otherObjs.Count > 0) { details.Append(RuleOtherPrefix); if (otherObjs.Count == 1) { details.Append(otherObjs[0]); } else { int last = otherObjs.Count - 1; for (int i = 0; i < otherObjs.Count; ++i) { if (i == 0) { details.Append(otherObjs[i]); } else { details.Append(((i != last) ? ", " : " and ") + otherObjs[i]); } } } details.Append(RuleOtherSuffix); } return(details.ToString()); }
public override string ToString() { return(this.IsLost ? $"{this.X} {this.Y} {DescriptionHelper.GetEnumDescription(this.Orientation)} LOST" : $"{this.X} {this.Y} {DescriptionHelper.GetEnumDescription(this.Orientation)}"); }
internal controlConfigureMetricCriteria(ConfigurePolicyControlType controlType) { // SQLsecure 3.1 (Anshul Aggarwal) - Represents current state of control - 'Configure Security Check' or 'Export/Import Policy'. m_ControlType = controlType; InitializeComponent(); // Hide all radio buttons for single selection group box radioButton1.Visible = false; radioButton2.Visible = false; radioButton3.Visible = false; radioButton4.Visible = false; radioButton5.Visible = false; radioButton6.Visible = false; radioButton7.Visible = false; radioButton8.Visible = false; // Hide single selectin group box groupBox_TriggerSingle.Visible = groupBox_TriggerSingle.Enabled = false; // Hide all checkboxes for multiple selection group box checkBox1.Visible = false; checkBox2.Visible = false; checkBox3.Visible = false; checkBox4.Visible = false; checkBox5.Visible = false; checkBox6.Visible = false; checkBox7.Visible = false; checkBox8.Visible = false; // Hide multiple selection group box groupBox_CriteriaMultiple.Visible = groupBox_CriteriaMultiple.Enabled = false; // Hide User Entered Multiple Selection group box groupBox_CriteriaUserEnterMultiple.Visible = groupBox_CriteriaUserEnterMultiple.Enabled = false; // Hide User Entered Single Selection group box groupBox_CriteriaUserEnterSingle.Visible = groupBox_CriteriaUserEnterSingle.Enabled = false; // Hide Enabled Disabled Only group box groupBox_TriggerDisabledEnabledOnly.Visible = groupBox_TriggerDisabledEnabledOnly.Enabled = false; radioButton_SeverityCritical.Text = Utility.DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.High); radioButton_SeverityMedium.Text = Utility.DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Medium); radioButton_SeverityLow.Text = Utility.DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Low); // load value lists for grid display ValueListItem listItem; ValueList severityValueList = new ValueList(); severityValueList.Key = valueListSeverity; severityValueList.DisplayStyle = ValueListDisplayStyle.DisplayText; severityValueList.ValueListItems.Clear(); listItem = new ValueListItem(Utility.Policy.Severity.Ok, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Ok)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.check_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Low, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Low)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.LowRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Medium, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Medium)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.MediumRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.High, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.High)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.HighRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.Severity.Undetermined, DescriptionHelper.GetEnumDescription(Utility.Policy.Severity.Undetermined)); listItem.Appearance.Image = AppIcons.AppImage16(AppIcons.Enum.Unknown); listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); ValueList enabledValueList = new ValueList(); enabledValueList.Key = valueListEnabled; enabledValueList.DisplayStyle = ValueListDisplayStyle.DisplayText; listItem = new ValueListItem(true, "Yes"); enabledValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(false, "No"); enabledValueList.ValueListItems.Add(listItem); // SQLsecure 3.1 (Anshul Aggarwal) - Change control state based on current control usage type. RefreshState(); }
private bool LoadPermissions() { bool isOK = true; try { // Open connection to repository and query group members logX.loggerX.InfoFormat("Retrieve Snapshot OS Permissions for user: {0}", m_name); using (SqlConnection connection = new SqlConnection(Program.gController.Repository.ConnectionString)) { // Open the connection. connection.Open(); string sidString = "0x"; foreach (Byte sidchar in m_sid) { sidString += sidchar.ToString("X2"); } string query = string.Format(QueryOsObjectPermissions, m_snapshotId, sidString); //Get Permissions using (SqlCommand cmd = new SqlCommand(query, connection)) { cmd.CommandType = CommandType.Text; SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); ds.Tables[0].Columns.Add(colTextRights); ds.Tables[0].Columns.Add(colTextAuditFlags); ds.Tables[0].Columns.Add(colTextAccessType); DataView dv = new DataView(ds.Tables[0]); dv.Sort = colName; _grid.BeginUpdate(); _grid.SetDataBinding(dv, null); _grid.EndUpdate(); foreach (DataRowView drv in dv) { string objectType; string rights = string.Empty; switch (drv[colType].ToString().Trim()) { case OsObjectType.DB: objectType = DescriptionHelper.GetDescription(typeof(OsObjectType), "DB"); if (drv[colRights] != DBNull.Value) { rights = ((FileSystemRights)drv[colRights]).ToString(); } break; case OsObjectType.Disk: objectType = DescriptionHelper.GetDescription(typeof(OsObjectType), "Disk"); if (drv[colRights] != DBNull.Value) { rights = ((FileSystemRights)drv[colRights]).ToString(); } break; case OsObjectType.File: objectType = DescriptionHelper.GetDescription(typeof(OsObjectType), "File"); if (drv[colRights] != DBNull.Value) { rights = ((FileSystemRights)drv[colRights]).ToString(); } break; case OsObjectType.FileDirectory: objectType = DescriptionHelper.GetDescription(typeof(OsObjectType), "FileDirectory"); if (drv[colRights] != DBNull.Value) { rights = ((FileSystemRights)drv[colRights]).ToString(); } break; case OsObjectType.InstallDirectory: objectType = DescriptionHelper.GetDescription(typeof(OsObjectType), "InstallDirectory"); if (drv[colRights] != DBNull.Value) { rights = ((FileSystemRights)drv[colRights]).ToString(); } break; case OsObjectType.RegistryKey: objectType = DescriptionHelper.GetDescription(typeof(OsObjectType), "RegistryKey"); if (drv[colRights] != DBNull.Value) { rights = ((RegistryRights)drv[colRights]).ToString(); } break; default: logX.loggerX.Warn("Warning - unknown OS Object Type encountered", drv[colType]); objectType = DescriptionHelper.GetDescription(typeof(OsObjectType), "Unknown"); rights = "Unknown"; break; } drv[colType] = objectType; drv[colTextRights] = rights; //decode Audit flags string auditFlags = string.Empty; if (drv[colAuditFlags] != DBNull.Value) { foreach (int flag in Enum.GetValues(typeof(AuditFlags))) { //skip 0 because that is the None value which is not displayed in the security settings if (flag > 0 && ((int)drv[colAuditFlags] & flag) == flag) { auditFlags += (auditFlags.Length > 0 ? ", " : string.Empty) + DescriptionHelper.GetEnumDescription((AuditFlags)flag); } } } drv[colTextAuditFlags] = auditFlags; //decode access types string access = drv[colAccessType].ToString(); if (drv[colAccessType] != DBNull.Value) { foreach (int flag in Enum.GetValues(typeof(AccessControlType))) { if ((int)drv[colAccessType] == flag) { // These cannot be combined access = DescriptionHelper.GetEnumDescription((AccessControlType)flag); break; } } } drv[colTextAccessType] = access; } } _label_Header.Text = string.Format("OS Objects ({0} items)", _grid.Rows.Count); } } catch (SqlException ex) { logX.loggerX.Info("ERROR - unable to load OS Permissions from the selected Snapshot.", ex); Utility.MsgBox.ShowError(Utility.ErrorMsgs.OSPermissionsCaption, ex.Message); isOK = false; } catch (Exception ex) { isOK = false; logX.loggerX.Info("ERROR - unable to load OS Permissions from the selected Snapshot.", ex); Utility.MsgBox.ShowError(Utility.ErrorMsgs.OSPermissionsCaption, Utility.ErrorMsgs.CantGetSnapshot); } return(isOK); }
public View_ManagePolicies() { InitializeComponent(); _label_Summary.Text = "Manage Policies"; _toolStripButton_PoliciesColumnChooser.Image = _toolStripButton_AuditsColumnChooser.Image = AppIcons.AppImage16(AppIcons.Enum.GridFieldChooser); _toolStripButton_PoliciesGroupBy.Image = _toolStripButton_AuditsGroupBy.Image = AppIcons.AppImage16(AppIcons.Enum.GridGroupBy); _toolStripButton_PoliciesSave.Image = _toolStripButton_AuditsSave.Image = AppIcons.AppImage16(AppIcons.Enum.GridSaveToExcel); _toolStripButton_PoliciesPrint.Image = _toolStripButton_AuditsPrint.Image = AppIcons.AppImage16(AppIcons.Enum.Print); _smallTask_CreatePolicy.TaskHandler += new System.EventHandler(this.CreatePolicy); _smallTask_EditPolicy.TaskHandler += new System.EventHandler(this.EditPolicy); _grid_Assessments.Tag = _label_Assessments; _grid_Policies.Tag = _label_Policies; _dt_Policies.Columns.Add(colHeaderName, typeof(String)); _dt_Policies.Columns.Add(colHeaderRiskHigh, typeof(int)); _dt_Policies.Columns.Add(colHeaderRiskMedium, typeof(int)); _dt_Policies.Columns.Add(colHeaderRiskLow, typeof(int)); _dt_Policies.Columns.Add(colHeaderAssessmentCount, typeof(int)); _dt_Policies.Columns.Add(colHeaderDynamicServerSelection, typeof(bool)); _dt_Policies.Columns.Add(colHeaderHasInterview, typeof(bool)); _dt_Policies.Columns.Add(colHeaderDescription, typeof(String)); _dt_Policies.Columns.Add(colHeaderHiddenPolicyId, typeof(int)); _dt_Policies.Columns.Add(colHeaderHiddenAssessmentId, typeof(int)); _dt_Assessments.Columns.Add(colHeaderStatus, typeof(int)); _dt_Assessments.Columns.Add(colHeaderName, typeof(String)); _dt_Assessments.Columns.Add(colHeaderConfiguredHigh, typeof(int)); _dt_Assessments.Columns.Add(colHeaderRiskHigh, typeof(int)); _dt_Assessments.Columns.Add(colHeaderConfiguredMedium, typeof(int)); _dt_Assessments.Columns.Add(colHeaderRiskMedium, typeof(int)); _dt_Assessments.Columns.Add(colHeaderConfiguredLow, typeof(int)); _dt_Assessments.Columns.Add(colHeaderRiskLow, typeof(int)); _dt_Assessments.Columns.Add(colHeaderState, typeof(String)); _dt_Assessments.Columns.Add(colHeaderDate, typeof(String)); _dt_Assessments.Columns.Add(colHeaderDescription, typeof(String)); _dt_Assessments.Columns.Add(colHeaderHiddenPolicyId, typeof(int)); _dt_Assessments.Columns.Add(colHeaderHiddenAssessmentId, typeof(int)); _grid_Policies.DrawFilter = new Utility.HideFocusRectangleDrawFilter(); _grid_Assessments.DrawFilter = new Utility.HideFocusRectangleDrawFilter(); // load value lists for grid display ValueListItem listItem; ValueList severityValueList = new ValueList(); severityValueList.Key = valueListSeverity; severityValueList.DisplayStyle = ValueListDisplayStyle.Picture; _grid_Assessments.DisplayLayout.ValueLists.Add(severityValueList); severityValueList.ValueListItems.Clear(); listItem = new ValueListItem(Utility.Policy.SeverityExplained.Ok, DescriptionHelper.GetEnumDescription(Utility.Policy.SeverityExplained.Ok)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.check_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.SeverityExplained.LowExplained, DescriptionHelper.GetEnumDescription(Utility.Policy.SeverityExplained.LowExplained)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.LowRiskExplained_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.SeverityExplained.MediumExplained, DescriptionHelper.GetEnumDescription(Utility.Policy.SeverityExplained.MediumExplained)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.MediumRiskExplained_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.SeverityExplained.HighExplained, DescriptionHelper.GetEnumDescription(Utility.Policy.SeverityExplained.HighExplained)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.HighRiskExplained_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.SeverityExplained.Low, DescriptionHelper.GetEnumDescription(Utility.Policy.SeverityExplained.Low)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.LowRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.SeverityExplained.Medium, DescriptionHelper.GetEnumDescription(Utility.Policy.SeverityExplained.Medium)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.MediumRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.SeverityExplained.High, DescriptionHelper.GetEnumDescription(Utility.Policy.SeverityExplained.High)); listItem.Appearance.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.HighRisk_16; listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); listItem = new ValueListItem(Utility.Policy.SeverityExplained.Undetermined, DescriptionHelper.GetEnumDescription(Utility.Policy.SeverityExplained.Undetermined)); listItem.Appearance.Image = AppIcons.AppImage16(AppIcons.Enum.Unknown); listItem.Appearance.ImageVAlign = VAlign.Top; severityValueList.ValueListItems.Add(listItem); }
private void loadDataSource() { if (m_policy.IsAssessment) { if (m_server != null) { ((Interfaces.IView)_reportCard).SetContext(new Data.ReportCard(m_policy, m_server)); } else { ((Interfaces.IView)_reportCard).SetContext(new Data.ReportCard(m_policy)); } } else { if (m_server != null) { ((Interfaces.IView)_reportCard).SetContext(new Data.ReportCard(m_policy, m_context.UseBaseline, m_context.SelectionDate, m_server)); } else { ((Interfaces.IView)_reportCard).SetContext(new Data.ReportCard(m_policy, m_context.UseBaseline, m_context.SelectionDate)); } } logX.loggerX.Info("Get " + (m_policy.IsAssessment ? "Assessment" : "Policy") + (m_server == null ? string.Empty : " Server") + " Summary Security Status"); _viewSection_PolicyStatus.SuspendLayout(); _viewSection_PolicyStatus.Title = string.Format(TitleFormat, m_server == null ? (m_policy.IsAssessment ? string.Format(Display_Assessment, m_policy.AssessmentStateName) : Display_Policy) : Display_Server); logX.loggerX.Verbose("Load Assessment Audit Data Selections"); if (m_policy.IsAssessment) { _label_Selections.Text = string.Format(SelectionsFormat, m_policy.UseBaseline ? Display_Baseline : string.Empty); if (m_policy.AssessmentDate.HasValue) { _label_Selections.Text += "\nas of " + m_policy.AssessmentDate.Value.ToLocalTime().ToString(Utility.Constants.DATETIME_FORMAT); } } else { _label_Selections.Text = string.Format(SelectionsFormat, Program.gController.PolicyUseBaselineSnapshots ? Display_Baseline : string.Empty); if (Program.gController.PolicyTime.HasValue) { _label_Selections.Text += "\nas of " + Program.gController.PolicyTime.Value.ToLocalTime().ToString(Utility.Constants.DATETIME_FORMAT); } } try { List <Sql.PolicyMetric> metrics = m_policy.GetPolicyMetrics(Program.gController.Repository.ConnectionString); int high = 0; int medium = 0; int low = 0; logX.loggerX.Verbose("Process Security Check Counts"); foreach (Sql.PolicyMetric metric in metrics) { if (metric.IsEnabled) { if (metric.Severity == (int)Policy.Severity.High) { high++; } if (metric.Severity == (int)Policy.Severity.Medium) { medium++; } if (metric.Severity == (int)Policy.Severity.Low) { low++; } } } logX.loggerX.Verbose("Load " + (m_policy.IsAssessment ? "Assessment" : "Policy") + " Description"); if (m_policy.IsAssessment) { _label_Description.Text = string.IsNullOrEmpty(m_policy.AssessmentDescription) ? m_policy.AssessmentName : m_policy.AssessmentDescription; _toolTip_Description.SetToolTip(_label_Description, string.Format("{0}\n{1}", m_policy.PolicyAssessmentName, m_policy.AssessmentDescription)); } else { _label_Description.Text = string.IsNullOrEmpty(m_policy.PolicyDescription) ? m_policy.PolicyName : m_policy.PolicyDescription; _toolTip_Description.SetToolTip(_label_Description, string.Format("{0}\n{1}", m_policy.PolicyName, m_policy.PolicyDescription)); } // Set the assessment statuses //High logX.loggerX.Verbose("Load " + (m_policy.IsAssessment ? "Assessment" : "Policy") + " High Status Bar"); _pictureBox_SecurityStatusHigh.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.HighRisk_32; _label_High.Text = string.Format(BarLabelDisplay, DescriptionHelper.GetEnumDescription(Policy.Severity.High)); _label_HighCount.Text = string.Format(BarHighCountDisplay, high); if (high > 0) { _label_HighMsg.Visible = false; _label_HighRiskCount.Text = _reportCard.Risks.RiskCountHigh.ToString(); if (_reportCard.Risks.RiskCountHigh > 0) { _label_HighRiskBar.Width = Convert.ToInt16(BarMax * _reportCard.Risks.RiskCountHigh / high); _label_HighBar.Left = BarLeft + _label_HighRiskBar.Width; _label_HighBar.Width = BarMax - _label_HighRiskBar.Width; } else { _label_HighRiskBar.Width = 0; _label_HighBar.Left = BarLeft; _label_HighBar.Width = BarMax; } _label_HighRiskBar.Visible = _label_HighBar.Visible = true; } else { _label_HighRiskCount.Text = string.Empty; _label_HighMsg.Text = NoMetrics; _label_HighMsg.Visible = true; _label_HighRiskBar.Visible = _label_HighBar.Visible = false; } //Medium logX.loggerX.Verbose("Load " + (m_policy.IsAssessment ? "Assessment" : "Policy") + " Medium Status Bar"); _pictureBox_SecurityStatusMedium.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.MediumRisk_32; _label_Medium.Text = string.Format(BarLabelDisplay, DescriptionHelper.GetEnumDescription(Policy.Severity.Medium)); _label_MediumCount.Text = string.Format(BarHighCountDisplay, medium); if (medium > 0) { _label_MediumMsg.Visible = false; _label_MediumRiskCount.Text = _reportCard.Risks.RiskCountMedium.ToString(); if (_reportCard.Risks.RiskCountMedium > 0) { _label_MediumRiskBar.Width = Convert.ToInt16(BarMax * _reportCard.Risks.RiskCountMedium / medium); _label_MediumBar.Left = BarLeft + _label_MediumRiskBar.Width; _label_MediumBar.Width = BarMax - _label_MediumRiskBar.Width; } else { _label_MediumRiskBar.Width = 0; _label_MediumBar.Left = BarLeft; _label_MediumBar.Width = BarMax; } _label_MediumRiskBar.Visible = _label_MediumBar.Visible = true; } else { _label_MediumRiskCount.Text = string.Empty; _label_MediumMsg.Text = NoMetrics; _label_MediumMsg.Visible = true; _label_MediumRiskBar.Visible = _label_MediumBar.Visible = false; } //Low logX.loggerX.Verbose("Load " + (m_policy.IsAssessment ? "Assessment" : "Policy") + " Low Status Bar"); _pictureBox_SecurityStatusLow.Image = global::Idera.SQLsecure.UI.Console.Properties.Resources.LowRisk_32; _label_Low.Text = string.Format(BarLabelDisplay, DescriptionHelper.GetEnumDescription(Policy.Severity.Low)); _label_LowCount.Text = string.Format(BarHighCountDisplay, low); if (low > 0) { _label_LowMsg.Visible = false; _label_LowRiskCount.Text = _reportCard.Risks.RiskCountLow.ToString(); if (_reportCard.Risks.RiskCountLow > 0) { _label_LowRiskBar.Width = Convert.ToInt16(BarMax * _reportCard.Risks.RiskCountLow / low); _label_LowBar.Left = BarLeft + _label_LowRiskBar.Width; _label_LowBar.Width = BarMax - _label_LowRiskBar.Width; } else { _label_LowRiskBar.Width = 0; _label_LowBar.Left = BarLeft; _label_LowBar.Width = BarMax; } _label_LowRiskBar.Visible = _label_LowBar.Visible = true; } else { _label_LowRiskCount.Text = string.Empty; _label_LowMsg.Text = NoMetrics; _label_LowMsg.Visible = true; _label_LowRiskBar.Visible = _label_LowBar.Visible = false; } if (m_server == null) { _grid_Servers.SuspendLayout(); m_serverTable.Clear(); logX.loggerX.Verbose("Load " + (m_policy.IsAssessment ? "Assessment" : "Policy") + " Server Counts"); foreach (KeyValuePair <string, ReportCard.RiskCounts> server in _reportCard.ServerRisks) { if (server.Key.Length > 0) { logX.loggerX.Verbose("Loading Server " + server.Key); DataRow row = m_serverTable.NewRow(); row[colSeverity] = server.Value.HighestRiskImage; row[colServer] = server.Key; row[colHigh] = server.Value.RiskCountHigh; row[colMedium] = server.Value.RiskCountMedium; row[colLow] = server.Value.RiskCountLow; row[colStatus] = server.Value.AllRisksText; m_serverTable.Rows.Add(row); } } DataView dv = m_serverTable.DefaultView; dv.Sort = colServer; _grid_Servers.SetDataBinding(m_serverTable.DefaultView, null); _label_Servers.Text = string.Format(HeaderDisplay, dv.Count, dv.Count == 1 ? string.Empty : "s"); _grid_Servers.ResumeLayout(); _viewSection_ServerSummary.Visible = true; _viewSection_ServerInfo.Visible = false; } else { logX.loggerX.Verbose("Load " + (m_policy.IsAssessment ? "Assessment" : "Policy") + " Server Info"); _label_Server.Text = m_server.ConnectionName; _label_Version.Text = m_server.VersionFriendlyLong; _label_Edition.Text = m_server.Edition; _label_Os.Text = m_server.OS; Dictionary <int, int> snapshots = m_policy.PolicySnapshotList; int snapshotId; snapshots.TryGetValue(m_server.RegisteredServerId, out snapshotId); Sql.Snapshot snap = null; if (snapshotId > 0) { snap = Sql.Snapshot.GetSnapShot(snapshotId); } if (snap != null) { _label_Audited.Text = snap.StartTime.ToLocalTime().ToString(Utility.Constants.DATETIME_FORMAT); } else { _label_Audited.Text = @"Unknown"; } _viewSection_ServerInfo.Visible = true; _viewSection_ServerSummary.Visible = false; _grid_Servers.DataSource = null; } } catch (Exception ex) { logX.loggerX.Error(@"Error - Unable to retrieve " + (m_policy.IsAssessment ? "Assessment" : "Policy") + (m_server == null ? string.Empty : " Server") + " summary info", ex); MsgBox.ShowError(string.Format(ErrorMsgs.CantGetPolicyInfoMsg, (m_policy.IsAssessment ? "Assessment" : "Policy") + " Summary Info"), ErrorMsgs.ErrorProcessPolicyInfo, ex); initDataSource(); _grid_Servers.ResumeLayout(); } _viewSection_PolicyStatus.ResumeLayout(); }
private DataTable getGridDisplayTbl(DataSet ds) { // Fill the return data table. DataTable dt = null; // Create table and configure columns. dt = new DataTable(); dt.Columns.Add(colIcon); dt.Columns.Add(colFileSystemRights); dt.Columns.Add(colAuditFlags); dt.Columns.Add(colUser); dt.Columns.Add(colAccessType); dt.Columns.Add(colInherited, typeof(bool)); if (ds != null && ds.Tables.Count > 0) { // Process each row and store permissions in table foreach (DataRow row in ds.Tables[0].Rows) { bool isInherited = (string)row[colInherited] == "Y" ? true : false; if (!isInherited || !_rdbtn_ExplicitOnly.Checked) { string rights; if (m_Tag.ObjType == Sql.ObjectType.TypeEnum.RegistryKey) { rights = ((RegistryRights)row[colFileSystemRights]).ToString(); } else { rights = ((FileSystemRights)row[colFileSystemRights]).ToString(); } string auditFlags = string.Empty; if (row[colAuditFlags] != DBNull.Value) { foreach (int flag in Enum.GetValues(typeof(AuditFlags))) { //skip 0 because that is the None value which is not displayed in the security settings if (flag > 0 && ((int)row[colAuditFlags] & flag) == flag) { auditFlags += (auditFlags.Length > 0 ? ", " : string.Empty) + DescriptionHelper.GetEnumDescription((AuditFlags)flag); } } } string access = row[colAccessType].ToString(); if (row[colAccessType] != DBNull.Value) { foreach (int flag in Enum.GetValues(typeof(AccessControlType))) { if ((int)row[colAccessType] == flag) { // These cannot be combined access = DescriptionHelper.GetEnumDescription((AccessControlType)flag); break; } } } dt.Rows.Add(new object[] { null, rights, auditFlags, (string)row[colUser], access, (string)row[colInherited] == "Y" ? true : false }); } } } return(dt); }