MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLユーザーに特権を付与するにはどうすればよいですか?


新しいユーザーには特権がないため、作成した新しいユーザーに特権を付与する必要があります。 GRANTステートメントを使用して、ユーザーアカウントに特権を付与できます。その構文は次のようになります-

構文
GRANT privilege,[privilege],.. ON privilege_level
TO user [IDENTIFIED BY password]
[REQUIRE tsl_option]
[WITH [GRANT_OPTION | resource_option]];

上記の構文の説明は次のとおりです-

まず、GRANTキーワードの後に​​1つ以上の特権を指定します。ユーザーに複数の特権を付与する場合、各特権はコンマで区切られます。

次に、特権が適用されるレベルを決定するprivilege_levelを指定します。 MySQLは、グローバル(*。*)、データベース(database。*)、テーブル(database.table)、および列レベルをサポートします。列特権レベルを使用する場合は、各特権の後に1つまたはコンマ区切りの列のリストを指定する必要があります。

次に、特権を付与するユーザーを配置します。ユーザーがすでに存在する場合、GRANTstatementはその特権を変更します。それ以外の場合、GRANTステートメントは新しいユーザーを作成します。オプションの句IDENTIFIEDBYを使用すると、ユーザーの新しいパスワードを設定できます。

その後、ユーザーがSSL、X059などの安全な接続を介してデータベースサーバーに接続する必要があるかどうかを指定します。

最後に、オプションのWITH GRANT OPTION句を使用すると、他のユーザーに付与したり、他のユーザーから自分が所有する特権を削除したりできます。さらに、WITH句を使用して、MySQLデータベースサーバーのリソースを割り当てることができます。たとえば、ユーザーが1時間に使用できる接続またはステートメントの数を設定できます。これは、MySQL共有ホスティングなどの共有環境で非常に役立ちます。

以下の例では、ユーザーを作成し、それに特権を付与しています-

mysql> use mysql
Database changed
mysql> create user abcd@localhost identified by 'password123';
Query OK, 0 rows affected (0.04 sec)

以下のクエリは、新しいユーザーアカウントabcd@localhostの権限を提供します。

mysql> SHOW GRANTS FOR abcd@localhost;
+------------------------------------------+
| Grants for abcd@localhost                |
+------------------------------------------+
| GRANT USAGE ON *.* TO 'abcd'@'localhost' |
+------------------------------------------+
1 row in set (0.01 sec)

ここで、abcd @ localhostユーザーアカウントにすべての特権を付与するには、次のステートメントを使用できます-

mysql> GRANT ALL ON *.* TO 'abcd'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.05 sec)

ここで、ON *。*句は、すべてのデータベースとデータベース内のすべてのオブジェクトを意味します。 WITH GRANT OPTIONを使用すると、abcd@localhostが他のユーザーに特権を付与できます。

ここで、SHOW GRANTSステートメントを再度使用すると、abcd@localhostの特権が更新されていることがわかります。

mysql> SHOW GRANTS FOR abcd@localhost;
+---------------------------------------------------------------------+
| Grants for abcd@localhost                                           |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'abcd'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)

  1. MySQLに別のユーザーとしてログインする方法は?

    MySQLに別のユーザーとしてログインする場合は、「mysql-u-pcommand」を使用する必要があります。別のユーザーとしてログインするための構文は次のとおりです。 >mysql -u yourUsername -p After pressing enter key Enter password − 上記の構文を理解するために、MySQLでユーザーを作成しましょう。構文は次のとおりです- CREATE USER 'yourUserName'@'localhost' IDENTIFIED BY 'yourPassword';

  2. MySQLのすべてのストアドプロシージャにアクセスすることをユーザーに許可するにはどうすればよいですか?

    まず、MySQL.user-テーブルのすべてのユーザーとホストを表示しましょう。 mysql> select user,host from Mysql.user; これにより、次の出力が生成されます- +------------------+-----------+ | user             | host      | +------------------+-----------+ | Bob             &n