**PostgreSQL **は、カリフォルニア大学バークレー校のコンピュータサイエンス学部によって開発されたバージョン4.2に基づくオブジェクト[リレーショナルデータベース](https://cloud.tencent.com/product/cdb-overview?from=10680)管理システム(ORDBMS)です。 PostgreSQLはほとんどのSQL標準をサポートし、複雑なクエリ、外部キー、トリガー、ビュー、トランザクションの整合性、MVCCなどの他の多くの最新機能を提供します。同様に、PostgreSQLは、新しいデータタイプ、関数、演算子、集計関数、インデックスを追加するなど、さまざまな方法で拡張できます。 PostgreSQLは、私的、商業的、または学術的な研究のために、無料で使用、変更、および配布できます。 [PostgreSQL](http://www.postgresql.org/)リレーショナルデータベースシステムは、強力で拡張可能な標準のオープンソースデータベースプラットフォームです。このチュートリアルは、Ubuntu 16.04 LTS(Xenial Xerus)上のTencent CloudCVMサーバーにPostgreSQLをインストールして構成するのに役立ちます。
sudo apt-get update && sudo apt-get upgrade
注意
このチュートリアルは、root以外のユーザーを対象としています。昇格された特権を必要とするコマンドの前にはsudo
が付いています。
UbuntuパッケージリポジトリからPostgreSQLをインストールします。
sudo apt-get install postgresql postgresql-contrib
デフォルトでは、PostgreSQLはデータベースソフトウェアにアクセスするために postgres
という名前のLinuxユーザーを作成します。
警告
postgres
を使用しているユーザーは、他の目的(たとえば、他のネットワークへの接続)には使用しないでください。これを行うと、データベースのセキュリティに深刻な脅威がもたらされます。
postgres
ユーザーのLinuxパスワードを変更します。sudo passwd postgres
postgres
データベースユーザーのパスワードを設定します。必ず newpassword
を強力なパスワードに置き換え、安全な場所に保管してください。su - postgres
psql -d template1 -c "ALTER USER postgres WITH PASSWORD 'newpassword';"
このユーザーは postgres
Linuxユーザーとは異なることに注意してください。 Linuxユーザーはデータベースへのアクセスに使用され、PostgreSQLユーザーはデータベースの管理タスクを実行するために使用されます。
この手順で設定したパスワードは、ネットワーク経由でデータベースに接続するために使用されます。デフォルトでは、ピア認証がローカル接続に使用されます。
このセクションのコマンドを postgres
Linuxユーザーとして実行します。
mytestdb
を作成します。createdb mytestdb
psql mytestdb
psql(9.5.2)
Type "help"for help.
mytestdb=#
これは、SQLコマンドを発行できるPostgreSQLクライアントシェルです。使用可能なコマンドのリストを表示するには、 \ h
コマンドを使用します。 \ h
の後に特定のコマンドを追加する方法について詳しく知ることができます。
このセクションには、従業員の姓名を使用してテストデータベースを作成し、各名前に一意のキーを割り当てる例が含まれています。独自のテーブルを作成する場合、必要な数のパラメーター(列)を指定して、適切な名前を付けることができます。このセクションのコマンドは、「データベースの作成」セクションのステップ2で開いたPostgreSQLシェルから実行します。
CREATE TABLE employees(employee_id int, first_name varchar, last_name varchar);
INSERT INTO employees VALUES(1,'John','Doe');
SELECT * FROM employees;
これにより、次の出力が生成されます。
employee_id | first_name | last_name
- - - - - - - - - - - - - +- - - - - - - - - - - - +- - - - - - - - - - - 1| John |Doe(1 row)
\ q
コマンドを入力して、PostgreSQLシェルを終了します。
PostgreSQLは、アクセス許可を指定するために使用されるロールを介してデータベースアクセス許可を付与します。ロールは、Linuxの「ユーザー」と同様の機能を持っていると理解できます。さらに、役割はLinuxの「グループ」と同様に、他の役割のセットとして作成することもできます。PostgreSQLの役割はグローバルに適用できるため、作成する必要はありません。同じサーバー上の複数のデータベースへのアクセスを許可する場合は、同じものを2回使用します。役割。
このセクションのコマンド例は、 postgres
Linuxユーザーとして実行する必要があります。
createuser examplerole --pwprompt
ロールを削除する必要がある場合は、 createuser
の代わりに dropuser
コマンドを使用できます。
psql mytestdb
デフォルトでは、 postgres
データベースユーザーとして接続します。
employee
テーブルのすべての権限をユーザー examplerole
に付与します。GRANT ALL ON employees TO examplerole;
\ q
と入力して、PostgreSQLシェルを終了します。
PostgreSQLはデフォルトでピア認証を使用します。これは、データベース接続が、接続されたデータベースを所有またはアクセス許可を持っているローカルシステムユーザーに付与されることを意味します。このタイプの認証は、特定のシステムユーザーがローカルプログラム(スクリプト、異なるユーザーが所有するCGI / FastCGIプロセスなど)を実行する状況で非常に役立ちますが、セキュリティを強化するために、アクセスするためにパスワードが必要になる場合があります。あなたのデータベース。
特に明記されていない限り、このセクションのコマンドは postgres
Linuxユーザーとして実行する必要があります。
#" local "のヘッダーの下にある
/ etc / postgresql / 9.5 / main / pg_hba.conf`ファイルを編集します。これはUnixドメインソケット接続専用です。# " local" is for Unix domain socket connections only
local all all peer`
この行の peer
を md5
に置き換えて、MD5ハッシュによるパスワード認証をアクティブにします。
postgres
ユーザーにsudo権限を付与しませんでした。通常のユーザーシェルに戻ります。exit
postgres
ユーザーに切り替えます。sudo service postgresql restart
su - postgres
postgres
を使用し、 examplerole
PostgreSQLユーザーとしてテストデータベースに接続します。psql -U examplerole -W mytestdb
examplerole
ユーザーのパスワードを入力し、 psql
によってデータベースへのシェルアクセスを許可するように求められます。データベースを使用する場合は、 \ z
コマンドを使用して各テーブルのアクセス許可を確認できます。
このトピックの詳細については、次のリソースを参照してください。これらの有用な情報を提供したいと考えていますが、外部でホストされている資料の正確性や適時性を保証することはできませんのでご注意ください。
[ PostgreSQLオンラインドキュメント](http://www.postgresql.org/docs/)
[ psqlマンページ](http://www.rootr.net/man/man/psql/1)
自作サーバーは必然的にこのような問題に直面します。SSLの設定は非常に面倒です。一部の人にとっては楽しいことですが、実稼働環境で使用する場合は、[クラウドリレーショナルデータベース](https://cloud.tencent.com/product/cdb-overview?from=10680)を直接使用することをお勧めします。 )、クラウドリレーショナルデータベースを使用すると、リレーショナルデータベースをクラウドに簡単に展開、管理、拡張して、安全で信頼性が高く、スケーラブルで柔軟なオンデマンドクラウドデータベースサービスを提供できます。 Tencent Cloudリレーショナルデータベースは、[MySQL](https://cloud.tencent.com/product/cdb?from=10680)、SQL Server、[MariaDB](https://cloud.tencent.com/product/tdsql?from=10680)、PostgreSQLデータベースエンジンを提供し、データベースエンジンのパフォーマンスを最適化します。クラウドリレーショナルデータベースは、災害復旧、バックアップ、復旧、監視、移行などのデータベース運用および保守ソリューションの完全なセットを提供する、可用性の高いホスティングサービスです。これにより、時間のかかるデータベース管理タスクから解放され、より多くのことが可能になります。アプリケーションとビジネスにより多くの時間を集中します。
MySQLを構成したくない場合は、クラウドデータベースを直接使用できます。[TencentDB for MySQL](https://cloud.tencent.com/product/cdb?from=10680)を使用すると、ユーザーはMySQLデータベースをクラウドに簡単にデプロイして使用できます。
LinuxおよびPostgreSQLのその他のチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。
参照:「Ubuntu16.04にPostgreSQLをインストールする方法」
Recommended Posts