Skip to content

Commit

Permalink
Merge pull request #3772 from EnterpriseDB/release/2023-03-08
Browse files Browse the repository at this point in the history
Release: 2023-03-08
  • Loading branch information
ccestes authored Mar 8, 2023
2 parents 1cbe05b + 30fcd00 commit 90d6f98
Show file tree
Hide file tree
Showing 61 changed files with 799 additions and 1,042 deletions.
32 changes: 18 additions & 14 deletions product_docs/docs/edb_plus/41/installing/windows.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,36 @@ navTitle: "On Windows"
redirects:
- /edb_plus/latest/03_installing_edb_plus/install_on_windows/
---


EDB provides a graphical interactive installer for Windows. You access it using StackBuilder Plus, which is installed as part of EDB Postgres Advanced Server.

## Prerequisites

Before installing EDB\*Plus, you must first install Java (version 1.8 or later). For Windows, Java installers and instructions are available online at:

<http://www.java.com/en/download/manual.jsp>

Windows installers for EDB\*Plus are available via StackBuilder Plus; you can access StackBuilder Plus through the Windows start menu. After opening StackBuilder Plus and selecting the installation for which you want to install EDB\*Plus, expand the component selection screen tree control to select and download the EDB\*Plus installer.

![The EDBPlus Welcome window](../images/edb_plus_welcome.png)
## Using StackBuilder Plus

<div style="text-align: center"> Fig. 1: The EDB*Plus Welcome window </div>
After installing EDB Postgres Advanced Server, you can use StackBuilder Plus to invoke the graphical installer for EDB*Plus. See [Using StackBuilder Plus](/epas/latest/epas_inst_windows/installing_advanced_server_with_the_interactive_installer/using_stackbuilder_plus/).

The EDB\*Plus installer welcomes you to the setup wizard, as shown in the figure below.
1. Using the Windows start menu, open StackBuilder Plus and follow the prompts until you get to the module selection page.

![The Installation Directory window](../images/installation_directory_new.png)
1. Expand the **Add-ons, tools, and utilities** node and select **EDB*Plus**.

<div style="text-align: center"> Fig. 2: The Installation Directory window </div>
1. Select **Next** and proceed to the [Using the graphical installer](#using-the-graphical-installer) section in this topic.

Use the `Installation Directory` field to specify the directory in which you wish to install the EDB\*Plus software. Then, click `Next` to continue.
## Using the graphical installer

![The Ready to Install window](../images/ready_to_install.png)
1. Select the installation language and select **OK**.

<div style="text-align: center"> Fig. 4: The Ready to Install window </div>
1. On the Setup EDB*Plus page, select **Next**.

The `Ready to Install` window notifies you when the installer has all of the information needed to install EDB\*Plus on your system. Click `Next` to install EDB\*Plus.
1. Browse to a directory where you want EDB*Plus to be installed, or allow the installer to install it in the default location. Select **Next**.

![The installation is complete](../images/installation_complete.png)
1. On the Ready to Install page, select **Next**.

<div style="text-align: center"> Fig. 5: The installation is complete </div>
An information box shows installation progress. This may take a few minutes.

The installer notifies you when the setup wizard has completed the EDB\*Plus installation. Click `Finish` to exit the installer.
1. When the installation has completed, select **Finish**.
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,7 @@ DB_VERSION(<version> OUT VARCHAR2, <compatibility> OUT VARCHAR2)

The following anonymous block displays the database version information.


```sql
DECLARE
v_version VARCHAR2(150);
Expand All @@ -332,10 +333,10 @@ BEGIN
DBMS_OUTPUT.PUT_LINE('Compatibility: ' || v_compat);
END;

Version: EnterpriseDB 14.0.0 on i686-pc-linux-gnu, compiled by GCC gcc
(GCC) 4.1.2 20080704 (Red Hat 4.1.2-48), 32-bit
Compatibility: EnterpriseDB 14.0.0 on i686-pc-linux-gnu, compiled by GCC
gcc (GCC) 4.1.220080704 (Red Hat 4.1.2-48), 32-bit
Version: PostgreSQL 15.2 (EnterpriseDB Advanced Server 15.2.0 (Debian 15.2.0-1.bullseye)) on x86_64-pc-linux-gnu,
compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
Compatibility: PostgreSQL 15.2 (EnterpriseDB Advanced Server 15.2.0 (Debian 15.2.0-1.bullseye)) on x86_64-pc-linux-gnu,
compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
```

## EXEC_DDL_STATEMENT
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -578,6 +578,8 @@ edbreport(<beginning_id>, <ending_id>)

The call to the `edbreport()` function returns a composite report that contains system information and the reports returned by the other statspack functions:

<!-- Consider replacing -->
'
```sql
SELECT * FROM edbreport(9, 10);
__OUTPUT__
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ legacyRedirectsGenerated:
- "/edb-docs/d/edb-postgres-advanced-server/user-guides/user-guide/9.5/EDB_Postgres_Enterprise_Guide.1.003.html"
---

See the [release notes](../../epas_rel_notes) for the features added in EDB Postgres Advanced Server 14.
See the [release notes](../../epas_rel_notes) for the features added in EDB Postgres Advanced Server 15.


## Hard limits
Expand Down
2 changes: 1 addition & 1 deletion product_docs/docs/epas/15/epas_limitations/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ title: "Limitations"
The following limitations apply:

- EDB recommends you don't store the `data` directory of a production database on an NFS file system. If you plan to go against this recommendation, see the [19.2.2.1. NFS](https://www.postgresql.org/docs/14/creating-cluster.html#CREATING-CLUSTER-FILESYSTEM) section in the PostgreSQL documentation for guidance about configuration.
- The LLVM JIT package is supported on RHEL or CentOS x86 only.
- The LLVM JIT package is supported only on RHEL or CentOS x86.
2 changes: 1 addition & 1 deletion product_docs/docs/epas/15/epas_platform_support/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ redirects:
- ../epas_inst_linux/02_supported_platforms
---

EDB Postgres Advanced Server v14 supports installations on Linux and Windows platforms. See [Product Compatibility](https://www.enterprisedb.com/platform-compatibility#epas) for details.
EDB Postgres Advanced Server supports installations on Linux and Windows platforms. See [Product Compatibility](https://www.enterprisedb.com/platform-compatibility#epas) for details.



Expand Down
11 changes: 4 additions & 7 deletions product_docs/docs/epas/15/epas_requirements/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ title: Requirements

## Hardware requirements

The following installation requirements assume you select the default options during the installation process. The minimum hardware requirements to install and run EDB Postgres Advanced Server are:
The following installation requirements assume that you selected the default options during the installation process. The minimum hardware requirements to install and run EDB Postgres Advanced Server are:

- 1 GHz processor
- 2 GB of RAM
Expand All @@ -17,13 +17,10 @@ Additional disk space is required for data or supporting components.

### User privileges

To perform an EDB Postgres Advanced Server installation on a Linux system you must have superuser or administrator or sudo privileges.
To perform an EDB Postgres Advanced Server installation on a Linux system you need superuser, administrator, or sudo privileges.

To perform an EDB Postgres Advanced Server installation on a Windows system you must have administrator privilege. If you are installing EDB Postgres Advanced Server on a Windows system that is configured with `User Account Control` enabled, you can assume sufficient privileges to invoke the graphical installer by right clicking on the name of the installer and selecting `Run as administrator` from the context menu.
To perform an EDB Postgres Advanced Server installation on a Windows system, you need administrator privileges. If you're installing EDB Postgres Advanced Server on a Windows system that's configured with **User Account Control** enabled, you can assume the privileges required to invoke the graphical installer. Right-click the name of the installer, and select **Run as administrator** from the context menu.

### Windows-specific software requirements

Apply the Windows operating system updates before invoking the installer. If the installer encounters errors during the installation process, exit the installation and ensure that your Windows version is up-to-date before restarting the installer.



Apply the Windows operating system updates before invoking the installer. If the installer encounters errors during the installation process, exit the installation, and ensure that your Windows version is up to date. Then restart the installer.
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,25 @@ legacyRedirectsGenerated:

<div id="sql_protect_overview" class="registered_link"></div>

This section contains an introduction to the different types of SQL injection attacks and describes how SQL/Protect guards against them.
SQL/Protect guards against different types of SQL injection attacks.

## Types of SQL injection attacks

There are a number of different techniques used to perpetrate SQL injection attacks. Each technique is characterized by a certain *signature*. SQL/Protect examines queries for the following signatures:
A number of different techniques are used to perpetrate SQL injection attacks. Each technique is characterized by a certain *signature*. SQL/Protect examines queries for the following signatures.

### Unauthorized relations

While EDB Postgres Advanced Server allows administrators to restrict access to relations (tables, views, etc.), many administrators don't perform this tedious task. SQL/Protect provides a *learn* mode that tracks the relations a user accesses.
While EDB Postgres Advanced Server allows administrators to restrict access to relations (such as tables and views), many administrators don't perform this tedious task. SQL/Protect provides a *learn* mode that tracks the relations a user accesses.

This allows administrators to examine the workload of an application, and for SQL/Protect to learn which relations an application should be allowed to access for a given user or group of users in a role.
This mode allows administrators to examine the workload of an application and for SQL/Protect to learn the relations an application is allowed to access for a given user or group of users in a role.

When SQL/Protect is switched to either *passive* or *active* mode, the incoming queries are checked against the list of learned relations.
When SQL/Protect is switched to *passive* or *active* mode, the incoming queries are checked against the list of learned relations.

### Utility commands

A common technique used in SQL injection attacks is to run utility commands, which are typically SQL Data Definition Language (DDL) statements. An example is creating a user-defined function that has the ability to access other system resources.
A common technique used in SQL injection attacks is to run utility commands, which are typically SQL data definition language (DDL) statements. An example is creating a user-defined function that can access other system resources.

SQL/Protect can block the running of all utility commands, which are not normally needed during standard application processing.
SQL/Protect can block running all utility commands that aren't normally needed during standard application processing.

### SQL tautology

Expand All @@ -40,42 +40,42 @@ Attackers usually start identifying security weaknesses using this technique. SQ

### Unbounded DML statements

A dangerous action taken during SQL injection attacks is the running of unbounded DML statements. These are `UPDATE` and `DELETE` statements with no `WHERE` clause. For example, an attacker may update all users’ passwords to a known value or initiate a denial of service attack by deleting all of the data in a key table.
A dangerous action taken during SQL injection attacks is running unbounded DML statements. These are `UPDATE` and `DELETE` statements with no `WHERE` clause. For example, an attacker might update all users’ passwords to a known value or initiate a denial of service attack by deleting all of the data in a key table.

## Monitoring SQL injection attacks

This section describes how SQL/Protect monitors and reports on SQL injection attacks.
SQL/Protect can monitor and report on SQL injection attacks.

### Protected roles

Monitoring for SQL injection attacks involves analyzing SQL statements originating in database sessions where the current user of the session is a protected role. A *protected role* is an EDB Postgres Advanced Server user or group that the database administrator has chosen to monitor using SQL/Protect. (In EDB Postgres Advanced Server, users and groups are collectively referred to as *roles*.)
Monitoring for SQL injection attacks involves analyzing SQL statements originating in database sessions where the current user of the session is a *protected role*. A protected role is an EDB Postgres Advanced Server user or group that the database administrator chooses to monitor using SQL/Protect. (In EDB Postgres Advanced Server, users and groups are collectively referred to as *roles*.)

Each protected role can be customized for the types of SQL injection attacks for which it is to be monitored, thus providing different levels of protection by role and significantly reducing the user maintenance load for DBAs.
You can customize each protected role for the types of SQL injection attacks it's being monitored for, This approach provides different levels of protection by role and significantly reduces the user-maintenance load for DBAs.

A role with the superuser privilege cannot be made a protected role. If a protected non-superuser role is subsequently altered to become a superuser, certain behaviors are exhibited whenever an attempt is made by that superuser to issue any command:
You can't make a role with the superuser privilege a protected role. If a protected non-superuser role later becomes a superuser, certain behaviors occur when that superuser tries to issue any command:

- A warning message is issued by SQL/Protect on every command issued by the protected superuser.
- The statistic in column superusers of `edb_sql_protect_stats` is incremented with every command issued by the protected superuser. See *Attack Attempt Statistics* for information on the `edb_sql_protect_stats` view.
- When SQL/Protect is in active mode, all commands issued by the protected superuser are prevented from running.
- SQL/Protect issues a warning message for every command issued by the protected superuser.
- The statistic in the column superusers of `edb_sql_protect_stats` is incremented with every command issued by the protected superuser. See [Attack attempt statistics](#attack-attempt-statistics) for information on the `edb_sql_protect_stats` view.
- SQL/Protect in active mode prevents all commands issued by the protected superuser from running.

A protected role that has the superuser privilege should either be altered so that it is no longer a superuser, or it should be reverted back to an unprotected role.
Either alter a protected role that has the superuser privilege so that it's no longer a superuser, or revert it to an unprotected role.

### Attack attempt statistics

Each usage of a command by a protected role that is considered an attack by SQL/Protect is recorded. Statistics are collected by type of SQL injection attack as discussed in *Types of SQL Injection Attacks*.
SQL/Protect records each use of a command by a protected role that's considered an attack. It collects statistics by type of SQL injection attack, as discussed in [Types of SQL injection attacks](#types-of-injection-attacks).

These statistics are accessible from view `edb_sql_protect_stats` that can be easily monitored to identify the start of a potential attack.
You can access these statistics from the view `edb_sql_protect_stats`. You can easily monitor this view to identify the start of a potential attack.

The columns in `edb_sql_protect_stats` monitor the following:

- **username.** Name of the protected role.
- **superusers.** Number of SQL statements issued when the protected role is a superuser. In effect, any SQL statement issued by a protected superuser increases this statistic. See *Protected Roles* for information on protected superusers.
- **relations.** Number of SQL statements issued referencing relations that were not learned by a protected role. (That is, relations that are not in a role’s protected relations list.)
- **superusers.** Number of SQL statements issued when the protected role is a superuser. In effect, any SQL statement issued by a protected superuser increases this statistic. See [Protected roles](#protected-roles) for information about protected superusers.
- **relations.** Number of SQL statements issued referencing relations that weren't learned by a protected role. (These relations aren't in a role’s protected relations list.)
- **commands.** Number of DDL statements issued by a protected role.
- **tautology.** Number of SQL statements issued by a protected role that contained a tautological condition.
- **dml.** Number of `UPDATE` and `DELETE` statements issued by a protected role that did not contain a `WHERE` clause.
- **dml.** Number of `UPDATE` and `DELETE` statements issued by a protected role that didn't contain a `WHERE` clause.

This gives database administrators the opportunity to react proactively in preventing theft of valuable data or other malicious actions.
These statistics give database administrators the chance to react proactively in preventing theft of valuable data or other malicious actions.

If a role is protected in more than one database, the role’s statistics for attacks in each database are maintained separately and are viewable only when connected to the respective database.

Expand All @@ -84,17 +84,15 @@ If a role is protected in more than one database, the role’s statistics for at

### Attack attempt queries

Each usage of a command by a protected role that is considered an attack by SQL/Protect is recorded in the `edb_sql_protect_queries` view.

The `edb_sql_protect_queries` view contains the following columns:
Each use of a command by a protected role that's considered an attack by SQL/Protect is recorded in the `edb_sql_protect_queries` view, which contains the following columns:

- **username.** Database user name of the attacker used to log into the database server.
- **ip_address.** IP address of the machine from which the attack was initiated.
- **port.** Port number from which the attack originated.
- **machine_name.** Name of the machine, if known, from which the attack originated.
- **date_time.** Date and time at which the query was received by the database server. The time is stored to the precision of a minute.
- **machine_name.** Name of the machine from which the attack originated, if known.
- **date_time.** Date and time when the database server received the query. The time is stored to the precision of a minute.
- **query.** The query string sent by the attacker.

The maximum number of offending queries that are saved in `edb_sql_protect_queries` is controlled by the `edb_sql_protect.max_queries_to_save` configuration parameter.

If a role is protected in more than one database, the role’s queries for attacks in each database are maintained separately and are viewable only when connected to the respective database.
If a role is protected in more than one database, the role’s queries for attacks in each database are maintained separately. They are viewable only when connected to the respective database.
Loading

2 comments on commit 90d6f98

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.