この記事の例は、MySQL 5.0 以降で実行されます。
MySQL ユーザー権限を付与するコマンドの簡単な形式は次のように要約できます:
grant 权限 on 数据库对象 to 用户
関連学習の推奨事項:mysql ビデオ チュートリアル
1. 一般のデータ ユーザーに、データベース内のすべてのテーブル データのクエリ、挿入、更新、および削除を行う権限を付与します。
grant select on testdb.* to common_user@'%' grant insert on testdb.* to common_user@'%' grant update on testdb.* to common_user@'%' grant delete on testdb.* to common_user@'%'
または、代わりに MySQL コマンドを使用します。
grant select, insert, update, delete on testdb.* to common_user@'%'
2. データベース開発者に、テーブル、インデックス、ビュー、ストアド プロシージャ、関数の作成を許可します。 。 。およびその他の権限。
MySQL データ テーブル構造を作成、変更、削除する権限を付与します。
grant create on testdb.* to developer@'192.168.0.%'; grant alter on testdb.* to developer@'192.168.0.%'; grant drop on testdb.* to developer@'192.168.0.%';
grant MySQL 外部キーを操作する権限。
grant references on testdb.* to developer@'192.168.0.%';
MySQL 一時テーブルを操作する権限を付与します。
grant create temporary tables on testdb.* to developer@'192.168.0.%';
MySQL インデックスを操作する権限を付与します。
grant index on testdb.* to developer@'192.168.0.%';
MySQL ビューを操作し、ソース コードを表示する権限を付与します。
grant create view on testdb.* to developer@'192.168.0.%'; grant show view on testdb.* to developer@'192.168.0.%';
MySQL ストアド プロシージャと関数を操作する権限を付与します。
grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure grant execute on testdb.* to developer@'192.168.0.%';
3. 通常の DBA に MySQL データベースを管理する権限を付与します。
grant all privileges on testdb to dba@'localhost'
このうち、キーワード「privileges」は省略可能です。
4. 上級 DBA に、MySQL 内のすべてのデータベースを管理する権限を付与します。
grant all on *.* to dba@'localhost'
5. MySQL の許可権限は複数のレベルで適用できます。
1. 付与は MySQL サーバー全体に適用されます:
grant select on *.* to dba@localhost; -- dba 可以查询 MySQL 中所有数据库中的表。 grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库
2. 付与は単一のデータベースに適用されます:
grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。
3. 付与は単一のデータに適用されますtable Above:
grant select, insert, update, delete on testdb.orders to dba@localhost;
複数のテーブルをユーザーに許可する場合、上記のステートメントを複数回実行できます。例:
grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345'; grant select on smp.mo_sms to mo_user@'%' identified by '123345';
4. 付与はテーブル内の列に作用します:
grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. 付与はストアド プロシージャと関数に作用します:
grant execute on procedure testdb.pr_add to 'dba'@'localhost' grant execute on function testdb.fn_add to 'dba'@'localhost'
6. ビューMySQL ユーザー権限
現在のユーザー (自分) 権限の表示:
show grants;
他の MySQL ユーザー権限の表示:
show grants for dba@localhost;
7. 取り消しが許可されましたMySQL ユーザー権限の権限へ。
revoke の構文は付与と同様で、キーワード「to」を「from」に置き換えるだけです:
grant all on *.* to dba@localhost; revoke all on *.* from dba@localhost;
8. MySQL の付与、ユーザー権限の取り消し 注
1. ユーザー権限を付与および取り消した後、その権限はユーザーが MySQL データベースに再接続した場合にのみ有効になります。
2. 承認されたユーザーがこれらのアクセス許可を他のユーザーに付与したい場合は、「付与オプション」オプションが必要です。
grant select on testdb.* to dba@localhost with grant option;
この機能は通常は使用されません。実際には、データベース権限は DBA によって均一に管理されるのが最適です。
以上がMySQLでgrantコマンドを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。