ホームページ >データベース >mysql チュートリアル >mysqlでユーザーの権限を設定する方法
MySQL は一般的なリレーショナル データベース管理システムであり、多くの Web サイトやアプリケーションが MySQL を使用してデータを保存および管理しています。 MySQL アプリケーションを開発する場合、データのセキュリティと正確性を確保するために、通常はさまざまなレベルのユーザー権限を設定する必要があります。この記事では、MySQL でユーザーの権限を設定する方法を紹介します。
ターミナルに次のコマンドを入力して、MySQL サーバーにログインします。
$ mysql -u root -p
このうち、-u
はユーザー名を表し、-p
はパスワードの入力が必要であることを表します。パスワードが設定されていない場合は、-p
パラメータを省略できます。
MySQL で新しいユーザーを作成するコマンドは次のとおりです:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
ここで、username
はあなたです。作成するユーザー名、password
は設定するパスワードです。 @'localhost'
は、ユーザーが MySQL サーバーにローカルでのみ接続できることを示します。他のマシンから MySQL サーバーへの接続を許可する場合は、localhost
を %
に置き換えます。
MySQL では、GRANT
コマンドを使用して、さまざまなレベルの権限をユーザーに割り当てることができます。たとえば、次のコマンドは、ユーザー username
にデータベース test
に対するクエリと更新の権限を付与できます。
GRANT SELECT, INSERT, UPDATE ON test.* TO 'username'@'localhost';
ここで、SELECT
はテーブルでの実行を意味します。クエリ操作の権限。INSERT
はテーブルに対して挿入操作を実行する権限を表し、UPDATE
はテーブルに対して更新操作を実行する権限を表します。 test.*
は、test
データベース内のすべてのテーブルが承認されていることを意味します。単一のテーブルを承認する場合は、test.*
を test.tablename
に置き換えます。
すべてのデータベースに対するすべての操作権限をユーザーに付与する場合は、次のコマンドを使用できます:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
ALL PRIVILEGES
に加えて、次のコマンドも使用できます。その他の権限 (例: SELECT
,INSERT
,UPDATE
,DELETE
,CREATE
,DROP
など
ユーザーに新しいアクセス許可を割り当てる場合、そのアクセス許可を有効にするために更新する必要があります。次のコマンドを使用してアクセス許可を更新できます。
FLUSH PRIVILEGES;
アクセス許可を更新しないと、アクセス許可を必要とする一部の操作を実行するときに、ユーザーが「アクセスが拒否されました」エラーが発生する可能性があります。
ユーザーの特定の権限を取り消したい場合は、次のコマンドを使用できます:
REVOKE SELECT, INSERT ON test.* FROM 'username'@'localhost';
そのうち、 SELECT
および INSERT
は、データベース test
に対するクエリおよび挿入権限がユーザー username
から取り消されることを示します。同様に、test.*
を test.tablename
に置き換えることで、単一テーブルへのユーザーのアクセスを取り消すことができます。ユーザーからすべての権限を削除する場合は、次のコマンドを使用できます。
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';
次のコマンドを使用して権限を表示できます。 MySQL のすべてのユーザーの権限:
SELECT * FROM mysql.user;
さらに、次のコマンドを使用してユーザーの権限を表示することもできます:
SHOW GRANTS FOR 'username'@'localhost';
上記のコマンドは、ユーザー ## のすべての権限を表示します。 MySQL の #username。
以上がmysqlでユーザーの権限を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。