ホームページ  >  記事  >  データベース  >  mysqlにはどのような権限があるのか

mysqlにはどのような権限があるのか

WBOY
WBOYオリジナル
2022-05-16 15:28:277822ブラウズ

Mysql 権限: 1. グローバル権限、サーバー内のすべてのデータベースに適用され、「mysql.user」に保存されます; 2. データベース権限、データベース内のすべてのターゲットに適用され、「mysql.db」に保存されますおよび「mysql.host」; 3. テーブルの権限 (テーブル内のすべての列に適用されます); 4. 列の権限など。

mysqlにはどのような権限があるのか

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql にはどのような権限があるのか​​

権限の特定の分類

1. グローバル レベル

グローバル権限は、特定の権限に適用されます。内のすべてのデータベースをサーバー化します。これらの権限は mysql.user テーブルに保存されます。 GRANT ALL ON *.* および REVOKE ALL ON *.* は、グローバル権限の付与と取り消しのみを行います。

2. データベース レベル

データベース権限は、特定のデータベース内のすべてのターゲットに適用されます。これらの権限は、mysql.db テーブルと mysql.host テーブルに保存されます。 GRANT ALL ON db_name.* および REVOKE ALL ON db_name.* は、データベース権限の付与と取り消しのみを行います。

3. テーブル レベル

テーブル権限は、特定のテーブル内のすべての列に適用されます。これらの権限は mysql.tables_priv テーブルに保存されます。 GRANT ALL ON db_name.tbl_name および REVOKE ALL ON db_name.tbl_name は、テーブル権限の付与と取り消しのみを行います。

4. 列レベル

列権限は、特定のテーブル内の単一の列に適用されます。これらの権限は mysql.columns_priv テーブルに保存されます。 REVOKE を使用する場合は、許可された列と同じ列を指定する必要があります。

5. サブプログラム レベル

CREATE ROUTINE、ALTER ROUTINE、EXECUTE、および GRANT 権限は、保存されたサブプログラムに適用されます。これらの権限は、グローバル レベルおよびデータベース レベルで付与できます。さらに、CREATE ROUTINE に加えて、これらの権限をサブルーチン レベルで付与し、mysql.procs_priv テーブルに保存することができます。

追加の知識:

1 、グローバル レベルのテスト

テスト アカウント テストを作成し、グローバル レベルの権限を付与します。以下に示すように:

mysql> set global validate_password_policy=0;
mysql> grant select,insert on *.* to test@'%' identified by 'test';
mysql> flush privileges;

mysqlにはどのような権限があるのか

次の 2 つのメソッドを使用して、テストに付与されたアクセス許可をクエリします。以下に示すように:

mysql> show grants for test;
mysql> select * from mysql.user where user='test'G;

mysqlにはどのような権限があるのか

2. データベース レベルのテスト

テスト アカウント テストを作成し、データベース レベルの権限を付与します。以下に示すように:

mysql> drop user test;
mysql> grant select,insert,update,delete on jpcpdb.* to test@'%' identified by 'test@123';
mysql> select * from mysql.user where user='test'G; --可以看到无任何授权。
mysql> show grants for test;
mysql> select * from mysql.db where user='test'G;

mysqlにはどのような権限があるのか

mysqlにはどのような権限があるのか

3. テーブルレベルのテスト

テスト アカウント テストを作成し、それを付与します。テーブルレベルの権限。以下に示すように:

mysql> drop user test;
mysql> flush privileges;
mysql> grant all on jpcpdb.user to test@'%' identified by 'test@123';
mysql> show grants for test;
mysql> select * from mysql.tables_privG;

mysqlにはどのような権限があるのか

4. 列レベルのテスト

テスト アカウント テストを作成し、列レベルの権限を付与します。以下に示すように:

mysql> drop user test;
mysql> flush privileges;
mysql> grant select (id, name) on jpcpdb.user to test@'%' identified by 'test@123';
mysql> flush privileges;
mysql> select * from mysql.columns_priv;
mysql> show grants for test;

mysqlにはどのような権限があるのか

5. サブプログラム レベルのテスト

テスト アカウント テストを作成し、サブプログラム レベルの権限を付与します。以下に示すように:

mysql> DROP PROCEDURE IF EXISTS PRC_TEST;
mysql> DELIMITER //
mysql> CREATE PROCEDURE PRC_TEST()
-> BEGIN
-> SELECT * FROM user;
-> END //
mysql> DELIMITER ;
mysql> grant execute on procedure jpcpdb.PRC_TEST to test@'%' identified by 'test@123';
mysql> flush privileges;
mysql> show grants for test;

mysql> select * from mysql.procs_priv where User='test';mysqlにはどのような権限があるのか

summary

付与された権限を表示する必要がある場合ユーザーに対して、これら 5 つのレベルから付与された権限を表示する必要があります。各レベルで付与されている権限を上から下、または小さいものから上に 1 つずつ確認します。

データベースは、ユニットまたはアプリケーション分野のための一般的なデータ処理システムであり、企業、事業部門、グループ、個人に属する関連データのコレクションを保存します。データベース内のデータは、グローバルな観点から確立され、特定のデータ モデルに従って編成、記述、保存されます。その構造は、必要なすべてのアクセス パスを提供できるデータ間の自然な接続に基づいており、データは特定のアプリケーションを対象とするのではなく、組織全体を対象としており、全体的な構造特性を備えています。

推奨学習: mysql ビデオ チュートリアル

以上がmysqlにはどのような権限があるのかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。