MySQLのユーザー管理とPostgreSQLのユーザー管理の違い

MySQLのユーザー管理とPostgreSQLのユーザー管理の違い

1. MySQL ユーザー管理

[例1.1] ローカルMySQLサーバーのテストデータベースにrootユーザーとしてログインする

mysql -uroot -p -hlocalhost テスト

[例1.2] ルートユーザーを使用してローカルMySQLサーバーのテストデータベースにログインし、クエリステートメントを実行します。

mysql -uroot -p -hlocalhost test -e "DESC 人;"

[例 1.3] CREATE USER を使用して、ユーザー名 jeffrey、パスワード mypass、ホスト名 localhost のユーザーを作成します。

'mypass' によって識別されるユーザー 'jeffrey'@'localhost' を作成します。

[例 1.4] GRANT ステートメントを使用して、パスワードが testpwd の新しいユーザー testUser を作成します。ユーザー testUser には、すべてのデータに対するクエリおよび更新権限があり、すべてのデータ テーブルに対する SELECT および UPDATE 権限が付与されています。

GRANT SELECT,UPDATE ON *.* TO 'testUser'@'localhost' IDENTIFIED BY 'testpwd'; /*アカウントを作成し、権限を付与する*/
SELECT Host,User,Select_priv,Update_priv, FROM mysql.user where user='testUser'; /*アカウント権限情報を表示*/

[例 1.5] INSERT を使用して、ユーザー名 customer1、ホスト名 localhost、パスワード customer1 の新しいアカウントを作成します。

INSERT INTO user (ホスト、ユーザー、パスワード) VALUES('localhost'、'customer1'、PASSWORD('customer1'));

[例 1.6] DROP USER を使用してユーザー 'jeffrey'@'localhost' を削除します。

ユーザー 'jeffrey'@'localhost' を削除します。

[例 1.7] DELETE を使用してユーザー 'customer1'@'localhost' を削除します。

DELETE FROM mysql.user WHERE host='localhost' and user='customer1';

[例 1.8] mysqladmin を使用して、root ユーザーのパスワードを "rootpwd" に変更します。

mysqladmin -u root -p パスワード "123456"

[例 1.9] UPDATE ステートメントを使用して、root ユーザーのパスワードを "rootpwd2" に変更します。

mysql.user を更新して、Password=password("rootpwd2") を設定します。
ここで、User="root"、Host="localhost";

[例 1.10] SET ステートメントを使用して、root ユーザーのパスワードを "rootpwd3" に変更します。

パスワードを設定する=password("rootpwd3");

[例 1.11] SET ステートメントを使用して、testUser ユーザーのパスワードを "newpwd" に変更します。

'testUser'@'localhost' のパスワードを設定する = password("newpwd");

[例 1.12] UPDATE ステートメントを使用して、testUser ユーザーのパスワードを "newpwd2" に変更します。

mysql.user を更新して、Password=PASSWORD("newpwd2") を設定します。
ここで、User="testUser" および Host="localhost";

[例 1.13] GRANT ステートメントを使用して、testUser ユーザーのパスワードを "newpwd3" に変更します。

sql

[例 1.14] testUser ユーザーは SET ステートメントを使用してパスワードを "newpwd4" に変更します。

パスワードの設定 = PASSWORD("newpwd4");

[例 1.15] GRANT ステートメントを使用して、パスワードが「grantpwd」の新しいユーザー grantUser を作成します。ユーザー grantUser には、すべてのデータに対するクエリおよび挿入権限があり、GRANT 権限が付与されます。 GRANT ステートメントとその実行結果は次のとおりです。

MySQL> GRANT SELECT、INSERT ON *.* TO 'grantUser'@'localhost' IDENTIFIED BY 'grantpwd' WITH GRANT OPTION;
クエリは正常、影響を受けた行は 0 行 (0.03 秒)

結果は実行が成功したことを示しています。SELECT ステートメントを使用して、ユーザー testUser2 の権限を照会します。

MySQL> SELECT Host,User,Select_priv,Insert_priv, Grant_priv FROM mysql.user where user='grantUser';
+-----------+-------------+-------------+--------------+--------------+
| ホスト | ユーザー | Select_priv | Insert_priv | Grant_priv |
+-----------+-------------+--------------+--------------+--------------+
| ローカルホスト | testUser2 | Y | Y | Y |
+-----------+-------------+--------------+--------------+--------------+
セット内の 1 行 (0.00 秒)

[例 1.16] REVOKE ステートメントを使用して、ユーザー testUser の更新権限を取り消します。 REVOKE ステートメントとその実行結果は次のとおりです。

MySQL> 'testUser'@'localhost' からの *.* の更新を取り消します。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

実行結果は、実行が成功したことを示しています。SELECT ステートメントを使用して、ユーザー test の権限を照会します。

MySQL> SELECT Host,User,Select_priv,Update_priv,Grant_priv FROM MySQL.user where user='testUser';

[例 1.17] SHOW GRANTS ステートメントを使用して、ユーザー testUser の権限情報を照会します。 SHOW GRANTS ステートメントとその実行結果は次のとおりです。

MySQL> 'testUser'@'localhost' の権限を表示します。

ケース操作プロセス

MySQL クライアント ツールを開き、ログイン コマンドを入力して MySQL にログインします。

C:\>mysql -u ルート -p
パスワードを入力してください: **

正しいパスワードを入力して Enter キーを押します。ログインが成功したことを示すウェルカム メッセージが表示されます。

現在のデータベースとしてmysqlデータベースを選択します。

MySQL> mysql を使用します。
データベースが変更されました

データベースの切り替えが成功したことを示す「データベースが変更されました」というメッセージが表示されます。

ユーザー名 newAdmin とパスワード pw1 を使用して新しいアカウントを作成し、ローカル ホストから MySQL にアクセスできるようにします。

GRANT ステートメントを使用して新しいアカウントを作成します。作成プロセスは次のとおりです。

MySQL> GRANT SELECT、UPDATE(id、name、age)
 -> ON test_db.person_old
 -> 宛先 'newAdmin'@'localhost' 識別名 'pw1'
 -> MAX_CONNECTIONS_PER_HOUR 30 の場合;
SELECT host、user、select_priv、update_priv FROM user WHERE user='newAdmin';
ホスト、DB、ユーザー、テーブル名、テーブル権限、列権限を選択します。 
tables_priv から user='newAdmin' を指定します。
ホスト、DB、ユーザー、テーブル名、列名、列権限を選択します。 
columns_priv から user='newAdmin' を指定します。

3 つの SQL ステートメントのクエリ結果は次のとおりです。

MySQL> SELECT host、user、select_priv、update_priv FROM user WHERE user='newAdmin';
MySQL> ホスト、データベース、ユーザー、テーブル名、テーブル権限、列権限を選択します
 -> tables_priv から user='newAdmin';
MySQL> ホスト、データベース、ユーザー、テーブル名、列名、列権限を選択します
 -> columns_priv から user='newAdmin';

SHOW GRANTS ステートメントを実行して、newAdmin の権限情報を表示します。

newAdmin アカウントの権限情報を表示するには、次のステートメントを入力します。

'newAdmin'@'localhost' の権限を表示します。

newAdmin ユーザーを使用して MySQL にログインします。

現在のログインを終了するには、EXIT コマンドを使用します。ステートメントは次のとおりです。

MySQL>終了
さよなら

newAdmin アカウントを使用して MySQL にログインします。ステートメントは次のとおりです。

C:\>MySQL -u 新しい管理者 -p
パスワードを入力してください: ***

正しいパスワードを入力すると、「mysql>」プロンプトが表示され、ログインが成功します。

newAdmin ユーザーを使用して、test_db データベースの person_dd テーブルのデータを表示します。

newAdmin ユーザーには、テスト データベースの person テーブルの 3 つのフィールドに対するクエリ権限が付与されているため、SELECT ステートメントを実行してこれらのフィールドの値を表示できます。実行プロセスは次のとおりです。

MySQL> SELECT * FROM test_db.person_dd LIMIT 5;

newAdmin ユーザーを使用して、person_dd テーブルに新しいレコードを挿入し、ステートメントの実行結果を表示します。

新しいレコードを挿入するには、次のステートメントを入力します。

test_db.person_old(name, age,info) に VALUES('gaga', 30) を挿入します。

実行結果は次のとおりです。

エラー 1142 (42000): テーブル 'person' に対するユーザー 'newAdmin'@'localhost' への INSERT コマンドが拒否されました

ご覧のとおり、ステートメントは実行できず、エラー メッセージは newAdmin ユーザーが person テーブルにエントリを挿入できないことを示しています。したがって、ユーザーは不正な操作を実行することはできません。

現在のアカウントからログアウトし、ルート ユーザーとして再度ログインして、新しい管理者アカウントの権限を取り消します。

終了コマンドを入力します: exit

再度、MySQL に root ユーザーとしてログインし、mysql データベースを現在のデータベースとして選択します。

newAdmin アカウントの権限を取り消すステートメントを入力します。実行プロセスは次のとおりです。

'newAdmin'@'localhost' からの test.person の SELECT、UPDATE を取り消します。

実行結果は次のとおりです。

MySQL> test.person の SELECT と UPDATE を取り消します ('newAdmin'@'localhost' から)。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

newAdminのアカウント情報を削除します。

指定したアカウントを削除するには、DROP USER ステートメントを使用して次のように入力します。

ユーザー 'newAdmin'@'localhost' を削除します。

2. PostgreSQLユーザー管理

2.1 グループロール管理

[例 2.1] post2 という名前のロールを作成します。SQL コードは次のとおりです。

ロール post2 を作成します。

[例 2.2] システム内のロールを確認します。SQL コードは次のとおりです。

pg_rolesからrolnameを選択します。

[例 2.3] ロール名 post1 を post3 に変更します。 SQL ステートメントは次のとおりです。

ロール post1 を変更して post3 に名前を変更します。

【例2.4】ロールpost3を削除します。 SQL ステートメントは次のとおりです。

ロールポスト3を削除します。

2.2 ロールのさまざまな権限

1. ログイン

[例 2.5] ログイン権限を持つロール post4 を作成します。 SQL ステートメントは次のとおりです。

ロール post4 ログインを作成します。

2スーパーユーザー

[例 2.6] スーパーユーザー権限を持つロール post5 を作成します。 SQL ステートメントは次のとおりです。

ロール post5 スーパーユーザーを作成します。

3. データベースを作成する

[例 2.7] データベースを作成する権限を持つロール post6 を作成します。 SQL ステートメントは次のとおりです。

ロール post6 CREATEDB を作成します。

4. キャラクターを作成する

ロールを作成するには、この権限を明示的に付与する必要があります (スーパーユーザーを除く)。ロールに CREATEROLE 権限が付与されると、他のロールを変更および削除したり、他のロールへのメンバーシップを付与または取り消したりできるようになります。もちろん、スーパーユーザーで操作したい場合は、この権限だけでは不十分で、SUPERUSER 権限が必要です。

ロールを作成する権限を持つロールを作成します。SQL 構文は次のとおりです。

CREATE ROLE 名 CREATEROLE;

[例 2.8] データベースを作成する権限を持つロール post7 を作成します。 SQL ステートメントは次のとおりです。

ロール post7 CREATEROLE を作成します。

5. パスワード

クライアント認証方法でデータベースへの接続が必要な場合は、パスワード認証が必要です。一般的な認証方法には、パスワード、md5、crypt などがあります。

パスワード権限を持つロールを作成します。SQL 構文は次のとおりです。

ロール名の作成

パスワード認証方法固有のパスワード

[例 2.9] パスワード権限を持つロール post8 を作成します。 SQL ステートメントは次のとおりです。

ロール post8 を作成します。パスワード '123456';

2.3 アカウント管理

1. ユーザーを作成する

[例 2.10] データベースとロールを作成する権限を持ち、ログイン パスワードが「123456789」である postgre02 という名前のユーザーを作成します。 SQL ステートメントは次のとおりです。

ユーザー postgre02 を作成 パスワード '123456789' 
CREATEDB CREATEROLE ;

2. ユーザーを削除する

[例 2.11] DROP USER を使用してアカウント "postgre02" を削除します。SQL ステートメントは次のとおりです。

DROP USER postgre02;

3. ユーザーパスワードを変更する

[例 2.12] アカウント「postgre01」のパスワードを「123123」に変更します。SQL 文は次のようになります。

ALTER USER postgre01 パスワード '123123';

2.4 グループロールとユーザーロールの管理

1. グループロールを承認する

[例 2.13] テーブルとロールを作成する権限を「post1」ロールに追加します。SQL ステートメントは次のとおりです。

ロール post1 を CREATEDB CREATEROLE に変更します。

2. ユーザー認証

[例 2.14] 「postgre01」ユーザーにテーブルとロールを作成する権限を追加します。SQL ステートメントは次のとおりです。

ALTER USER postgre01 でデータベース CREATEDB CREATEROLE を作成します。

3. グループロールの権限を取り消す

[例 2.15] 「post1」ロールのテーブル作成権限とロール作成権限を取り消します。SQL 文は次のようになります。

ロール post1 を変更します。NOCREATEDB NOCREATEROLE;

4. ユーザー権限を取り消す

[例 2.16] ユーザー「postgre01」からテーブルとロールを作成する権限を取り消します。SQL ステートメントは次のようになります。

ALTER USER postgre01 NOCREATEDB NOCREATEROLE;

2.5 データベース権限管理

1. データベースの所有者を変更する

[例 2.17] 「mytest」データベースの所有者を post1 に変更します。 SQL ステートメントは次のとおりです。

データベース mytest の所有者を post2 に変更します。

2. ユーザーのデータテーブル権限を増やす

[例 2.18] ppo1 は既存のデータ テーブル、postgres は既存のユーザーであり、postgres は ppo1 データ テーブルを更新する権限を持っています。テーブル権限を更新するには、次のコマンドを使用します。

ppo1 に対する更新権限を postgres に付与します。

上記の文を次のように変更します。

ppo1 の更新を一般公開します。

これは、データ テーブル ppo1 の更新権限がシステム内のすべてのロールに付与されることを意味します。

上記の文を次のように変更します。

ppo1 のすべての権限を postgres に付与します。

これは、オブジェクトに適用可能なすべての権限がユーザー postgres に付与されることを意味します。

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Postgresql ログ設定チュートリアルの詳細な説明
  • PostgreSQLデータベースに匿名ブロックを書き込む例
  • Postgresql 現在のユーザー名の実装を表示する
  • PostgreSQL 主キー削除操作
  • PostgreSQL 論理レプリケーション構成操作
  • SpringBoot で PostgreSql データベースに接続する方法
  • PostgreSQL マスタースレーブデータダウンタイムリカバリテストソリューション
  • PostgreSQLデータベースの監視とデータメンテナンス操作

<<:  HTML テーブルタグチュートリアル (21): 行の境界線の色属性 BORDERCOLOR

>>:  docker view container log コマンドの実装

推薦する

MySQL の on と where における左結合設定条件の使用法の違いの分析

この記事では、MySQL の左結合における on 条件と where 条件の使用法の違いを例を使って...

Mac に MySQL データベースをインストールし、環境変数を設定するためのグラフィック チュートリアル

目次MySQLをインストールする環境変数の設定MySQLをインストールするmysqlをダウンロードし...

要素UIポップアップコンポーネントをカプセル化する手順

el-dialogをコンポーネントとしてカプセル化するelement-ui を使用する場合、ポップア...

mysql5.7.19 winx64 解凍版のインストールと設定のチュートリアル

mysql 5.7.19 winx64解凍版のインストールチュートリアルを収録しました。具体的な内容...

文字列から指定された文字を削除または抽出する JavaScript メソッド (非常によく使用されます)

目次1. 部分文字列() 2. サブストラクチャ() 3.インデックス() 4.最後のインデックス(...

CSSアニメーションを使用して背景のシームレスな無限ループを実装する例

1. 需要絵が左から右へ無限ループで動く2. コードモバイルデバイスに適用されているため、rem 単...

Nginx 急ぎ購入 電流制限構成 実装分析

ビジネス上のニーズにより、急ぎの購入が発生することが多いため、ロード バランシング フロント エンド...

Tcl言語に基づくシンプルなネットワーク環境を構成するプロセスの分析

1. Tclスクリプトファイルcircle.tclコードコメント #シミュレーションに必要なプロパテ...

Vueのprovideとinjectの使い方と原則を分析する

まず、provide/inject を使用する理由について説明しましょう。祖父コンポーネントと孫コン...

Vueはツリー構造の追加、削除、変更、チェックのサンプルコードを実装します

実は多くの会社がユーザー権限ツリーに似た機能を持っています。最近、追加、削除、修正のツリー構造を書き...

k8s に ingress-nginx をデプロイする手順

目次序文1. Ingressの展開と構成2. httpsを使用する序文k8sクラスタサービスがデプロ...

JSメモリ空間の詳細な説明

目次概要1. スタックとヒープ2. 変数オブジェクトと基本データ型3. 参照データ型とヒープメモリメ...

MySQLデータベースで列を追加、削除、変更する方法

この記事では、例を使用して、MySQL データベースの列を追加、削除、および変更する方法について説明...

MySQLのネクストキーロックのロック範囲についての簡単な説明

序文ある日、突然 MySQL の次のキー ロックについて尋ねられ、私の即座の反応は次のようなものでし...

win10 での mysql5.7.21 の詳細なインストール手順

この記事では、MySQL 5.7.21のインストールとインストール中に発生した問題を参考までに紹介し...