MySQLで権限の編集を開始するには、最初にサーバーにログインしてから、mysql
に接続する必要があります。 クライアント。通常、root
に接続する必要があります または、MySQLのインストール全体を通じてフルアクセス権を持つ最初の「スーパーユーザー」アカウントであるアカウント。
通常、root
MySQLのインストール時にユーザーに認証パスワードが割り当てられますが、そうでない場合は、root
を追加してセキュリティを強化する手順を実行する必要があります。 公式ドキュメントに示されているパスワード。
MySQLコマンドラインツールへの接続
この例では、root
を想定しています。 プライマリMySQLアカウントです。 MySQLコマンドラインツール(mysqlcli
)の使用を開始するには )、root
としてサーバーに接続します ユーザー、次にmysql
を発行します コマンド:
$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 (Ubuntu)
[...]
mysql>
成功すると、MySQL接続に関する出力が表示され、mysql
が下向きになります。 プロンプト。
注:root
としてサーバーに直接接続できない場合 mysql
に接続する前のユーザー 、接続するユーザーを名前で指定できます --user=
を追加する フラグ:
$ mysql --user=username
これで、mysqlcli
に移動しました。 プロンプトが表示されたら、GRANT
を発行するだけです。 適切な権限を適用するために必要なオプションを指定してコマンドを実行します。
GRANT
コマンドは、CREATE
機能から、さまざまな特権を適用できます。 テーブルとデータベース、FILES
の読み取りまたは書き込み 、さらにはSHUTDOWN
サーバー。コマンドで使用できるフラグとオプションは多岐にわたるため、GRANT
についてよく理解しておくことをお勧めします。 公式ドキュメントを閲覧することで実際に行うことができます。
ほとんどの場合、特定のdatabase
に基づいてMySQLユーザーに権限を付与します。 そのアカウントはにアクセスできる必要があります。たとえば、一意のMySQLdatabase
ごとに一般的な方法です。 サーバー上で独自のuser
を持つ それに関連付けられているため、単一のuser
1つのdatabase
への認証アクセス権があります 逆もまた同様です。
GRANT ALL
へ user
への権限 、そのユーザーが特定のdatabase
を完全に制御できるようにします 、次の構文を使用します:
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
そのコマンドで、MySQLに次のように指示しました:
-
GRANT
PRIVILEGES
タイプALL
(したがって、もちろんすべて)。 注:最近のほとんどのMySQLインストールでは、オプションのPRIVILEGES
は必要ありません。 キーワード。 - これらの権限は
database_name
用です すべてに適用されます.*
で示されるそのデータベースのテーブル - これらの権限は
username
に割り当てられます そのusername
@'localhost'
で指定されているように、ローカルで接続されています 。有効なホストを指定するには、'localhost'
を置き換えます'%'
を使用 。
データベース全体にすべての特権を与えるのではなく、tolkien
を与えたいと思うかもしれません。 ユーザーはデータを読み取る機能のみ(SELECT
)authors
から books
の表 データベース。それは次のように簡単に達成できます:
mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost';
特に安全ではありませんが、場合によっては、サーバー上のすべてのデータベースに対するすべての権限を持つ別の「スーパーユーザー」を作成することをお勧めします。これは上記と同様に実行できますが、database_name
を置き換えることで実行できます。 ワイルドカードアスタリスク付き:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%';
今tolkien
デフォルトのroot
と同じ権限があります アカウント、注意してください!
ユーザー権限の更新後の最後のステップとして、必ずFLUSH PRIVILEGES
を発行して変更を保存してください。 mysql
からのコマンド プロンプト:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)