ホームページ > データベース > mysql チュートリアル > mysqlで権限を増やす方法

mysqlで権限を増やす方法

青灯夜游
リリース: 2022-04-12 15:25:31
オリジナル
5871 人が閲覧しました

GRANT ステートメントは、mysql でユーザーに権限を追加するために使用できます。構文は、「GRANT 権限タイプ ON 権限レベル値 TO ユーザー [IDENTIFIED BY 'password'] [WITH 句];」です。ここで、パラメータは「user」はユーザー アカウントを表し、形式は「'username'@'hostname'」です。

mysqlで権限を増やす方法

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

MySQL では、GRANT ステートメントを使用してユーザーを承認し、権限を増やすことができます。

構文形式は次のとおりです:

GRANT priv_type [(column_list)] ON database.table
TO user [IDENTIFIED BY 'password']
[WITH with_option [with_option]...]
ログイン後にコピー

その中に:

  • priv_type パラメータは権限のタイプを示します。

    # columns_list パラメータは、権限が適用される列を示します。このパラメータが省略された場合、テーブル全体に適用されることを意味します。
  • database.table は、権限を指定するために使用されます。権限のレベル;
  • user パラメータは、ユーザー名とホスト名で構成されるユーザー アカウントを表します。形式は "'username'@'hostname'";
  • IDENTIFIED BY パラメータは、ユーザー名パスワードの設定に使用されます。
  • # パスワード パラメーターは、ユーザーの新しいパスワードです。
  • MySQL で付与できる権限は次のとおりです。

列権限は、テーブル内の特定の列に関連付けられます。たとえば、UPDATE ステートメントを使用して、students テーブルの name 列の値に対するアクセス許可を更新できます。
  • テーブル権限は、特定のテーブル内のすべてのデータに関連します。たとえば、SELECT ステートメントを使用して、students テーブル内のすべてのデータの権限をクエリできます。
  • データベース権限は、特定のデータベース内のすべてのテーブルに関連しています。たとえば、既存のデータベース mytest に新しいテーブルを作成できます。
  • ユーザー権限は、MySQL のすべてのデータベースに関連しています。たとえば、既存のデータベースを削除したり、新しいデータベースを作成したりできます。
  • 同様に、GRANT ステートメントでアクセス許可レベルを指定するために使用できる値の形式は次のとおりです:

*:すべてのテーブルの現在のデータベースを示します。
  • *.*: すべてのデータベースのすべてのテーブルを示します。
  • db_name.*: データベース内のすべてのテーブルを示します。db_name はデータベース名を指定します。
  • db_name.tbl_name: データベース内のテーブルまたはビューを表します。db_name はデータベース名を指定し、tbl_name はテーブル名またはビュー名を指定します。
  • db_name.routine_name: データベース内のストアド プロシージャまたは関数を表します。routine_name はストアド プロシージャ名または関数名を指定します。
  • TO 句: 存在しないユーザーに権限が付与された場合、MySQL は自動的に CREATE USER ステートメントを実行してユーザーを作成しますが、ユーザーにはパスワードを設定する必要があります。
  • MySQL では、GRANT 権限を持つユーザーのみが GRANT ステートメントを実行できます。

例:

GRANT ステートメントを使用して、パスワード testPwd を持つ新しいユーザー testUser を作成します。ユーザー testUser には、すべてのデータに対するクエリ権限と挿入権限があり、GRANT 権限が付与されています。

mysql> GRANT SELECT,INSERT ON *.*
    -> TO 'testUser'@'localhost'
    -> IDENTIFIED BY 'testPwd'
    -> WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.05 sec)
ログイン後にコピー
次に示すように、SHOW GRANTS ステートメントを使用して、ユーザー testUser の権限をクエリします。

#拡張知識: 権限タイプの説明mysqlで権限を増やす方法

1) データベース権限を付与する場合、 を次のように指定できます。次の値:

#ALL または ALL PRIVILEGES または SUPERSuper_priv は、上記のすべての権限/スーパー権限を意味します
権限名 はユーザーテーブルのフィールドに対応します 説明
SELECT Select_priv は、SELECT ステートメントを使用して特定のデータベース内のすべてのテーブルとビューにアクセスする権限をユーザーに付与することを意味します。
INSERT Insert_priv INSERT ステートメントを使用して特定のデータベース内のすべてのテーブルにデータ行を追加する権限がユーザーに付与されていることを示します。
DELETE Delete_priv DELETE ステートメントを使用して、特定のデータベース内のすべてのテーブルからデータ行を削除する権限がユーザーに付与されていることを示します。
UPDATE Update_priv は、特定のデータベース内のすべてのデータ テーブルの値を更新するために UPDATE ステートメントを使用する権限をユーザーに付与することを意味します。
REFERENCES References_priv は、特定のデータベース内のテーブルを指す外部キーを作成する権限がユーザーに付与されていることを示します。
CREATE Create_priv CREATE TABLE ステートメントを使用して特定のデータベースに新しいテーブルを作成することをユーザーに許可する権限を表します。
ALTER Alter_priv ALTER TABLE ステートメントを使用して特定のデータベース内のすべてのデータ テーブルを変更する権限がユーザーに付与されていることを示します。
SHOW VIEW Show_view_priv 特定のデータベース内の既存のビューのビュー定義を表示する権限がユーザーに付与されていることを示します。
CREATE ROUTINE Create_routine_priv は、特定のデータベースに対してストアド プロシージャとストアド関数を作成する権限をユーザーに付与することを意味します。
ALTER ROUTINE Alter_routine_priv は、データベース内の既存のストアド プロシージャとストアド関数を更新および削除する権限がユーザーに付与されていることを示します。
INDEX Index_priv は、特定のデータベース内のすべてのデータ テーブルのインデックスを定義および削除する権限がユーザーに付与されていることを示します。
DROP Drop_priv は、特定のデータベース内のすべてのテーブルとビューを削除する権限をユーザーに付与することを意味します。
CREATE TEMPORARY TABLES Create_tmp_table_priv 特定のデータベースに一時テーブルを作成する権限がユーザーに付与されていることを示します。
CREATE VIEW Create_view_priv は、特定のデータベースに新しいビューを作成する権限をユーザーに付与することを意味します。
EXECUTE ROUTINE Execute_priv は、特定のデータベースのストアド プロシージャとストアド関数を呼び出す権限をユーザーに付与することを意味します。
LOCK TABLES Lock_tables_priv は、特定のデータベースの既存のデータ テーブルをロックする権限がユーザーに付与されていることを示します。
#2) テーブル権限を付与する場合、 を次の値として指定できます:

権限名は、 user table FieldDescriptionSELECTSelect_privSELECT ステートメントを使用して特定のテーブルにアクセスする権限をユーザーに付与しますINSERTInsert_privINSERT ステートメントを使用して特定のテーブルに行を追加する権限をユーザーに付与します DELETEDelete_privDELETE ステートメントを使用して特定のテーブルからデータ行を削除する権限をユーザーに付与しますDROPDrop_priv データ テーブルを削除する権限をユーザーに付与するUPDATEUpdate_privユーザーに、次を使用して特定のデータ テーブルを更新する権限を付与します。 UPDATE ステートメント 権限ALTERAlter_priv ALTER TABLE ステートメントを使用してデータ テーブルを変更する権限をユーザーに付与しますREFERENCESReferences_priv特定のデータ テーブルを参照する外部キーを作成する権限をユーザーに付与しますCREATECreate_priv 特定の名前を使用してデータ テーブルを作成する権限をユーザーに付与しますINDEXIndex_privテーブルにデータテーブルを作成する権限をユーザーに付与します。インデックスで定義された権限ALL または ALL PRIVILEGES または SUPERSuper_privAll権限名#3) 列権限を付与する場合、 の値は SELECT、INSERT、UPDATE としてのみ指定でき、列名リストは column-リストは権限の後に追加する必要があります。

4) 最も効率的な権限はユーザー権限です。

ユーザー権限を付与する場合、 はデータベース権限を付与する場合のすべての値として指定できます。また、次の値も指定できます:

## CREATE USER: 新しいユーザーを作成および削除する権限がユーザーに付与されていることを示します。
  • SHOW DATABASES: SHOW DATABASES ステートメントを使用して既存のすべてのデータベースの定義を表示する権限がユーザーに付与されていることを示します。
  • [関連する推奨事項:
  • mysql ビデオ チュートリアル
]

以上がmysqlで権限を増やす方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート