web-dev-qa-db-ja.com

同じ権限を持つ既存のユーザー@ Mysqlにホストを追加する

私のDBの既存のユーザーに別のホストを追加したいと思います。この新しいレコードにも、既存のユーザーと同じ権限を付与します。私はこのスレッドを見ました https://stackoverflow.com/questions/19281305/adding-new-Host-entries-to-existing-mysql-users しかしそれはそれが全体の特権をコピーしないようです既存のユーザーが持っています。ユーザーを1つずつ手動で追加する代わりに、プログラムによる解決策はありますか?

3
Reynaldi

MySQL Utilitiesをインストールできるか、すでに持っている場合は、を使用できますmysqlusercloneスクリプト。

参照:5.28 mysqluserclone —既存のユーザーをクローンする新しいユーザーを作成

コマンドは簡単です:

Shell> mysqluserclone --source=root@localhost --destination=root@localhost \
      source_user@localhost target_user:[email protected]

上記の例では、root@localhost(ソースとして)およびroot@localhost(ターゲットとして)に接続し、source_user@localhostから[email protected]に権限をコピーしています。

だからあなたは使うことができます:

Shell> mysqluserclone --source=root@localhost --destination=root@localhost \
      Reynaldi@localhost Reynaldi:[email protected]

詳細については、かなり限定されたドキュメントを参照してください。

3

他に方法はありません。テーブルからすべての列を手動でコピーしてください。5.5.29を使用すると、リストは次のようになります...

Host, User, Password, Select_priv, Insert_priv, Update_priv,
Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv,
Process_priv, File_priv, Grant_priv, References_priv, Index_priv,
Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv,
Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,
Create_view_priv, Show_view_priv, Create_routine_priv,
Alter_routine_priv, Create_user_priv, Event_priv, Trigger_priv,
Create_tablespace_priv, ssl_type, ssl_cipher, x509_issuer,
x509_subject, max_questions, max_updates, max_connections,
max_user_connections, plugin, authentication_string, password_expired,
is_role, default_role, max_statement_time

SHOW FULL COLUMNS FROM mysql.userからコピーしたとおり)、[Host]列が一番上に表示されます。だからあなたはあなたが欲しいものを入れます...このように:

'192.168.172.14', User, Password, Select_priv, Insert_priv, Update_priv,
Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv,
Process_priv, File_priv, Grant_priv, References_priv, Index_priv,
Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv,
Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,
Create_view_priv, Show_view_priv, Create_routine_priv,
Alter_routine_priv, Create_user_priv, Event_priv, Trigger_priv,
Create_tablespace_priv, ssl_type, ssl_cipher, x509_issuer,
x509_subject, max_questions, max_updates, max_connections,
max_user_connections, plugin, authentication_string, password_expired,
is_role, default_role, max_statement_time

次に、これらの大きな厄介なテキストブロックの両方を取り、それをステートメントに入力します。

INSERT INTO mysql.users (firstblock)
  SELECT secondblock
  FROM mysql.user;

そして、あなたは泣いて、あなたが さまざまなホストからの複数の認証モジュールを自然に処理する実際のデータベース)を使用していたといいのですが

選択性を自由に追加してください(すべてのユーザーからの接続のために新しいホストを開かないようにWHERE句)

2
Evan Carroll