私のDBの既存のユーザーに別のホストを追加したいと思います。この新しいレコードにも、既存のユーザーと同じ権限を付与します。私はこのスレッドを見ました https://stackoverflow.com/questions/19281305/adding-new-Host-entries-to-existing-mysql-users しかしそれはそれが全体の特権をコピーしないようです既存のユーザーが持っています。ユーザーを1つずつ手動で追加する代わりに、プログラムによる解決策はありますか?
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]
詳細については、かなり限定されたドキュメントを参照してください。
他に方法はありません。テーブルからすべての列を手動でコピーしてください。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
句)