MySQLデータベースとパスワードのないユーザーの作成

MySQLデータベースとパスワードのないユーザーの作成

私は基本的にクラウドサーバー上でApache仮想ホスト、Gitリポジトリ、その他の項目を準備するbashスクリプトのセットを構築しています。これまでは大丈夫でしたが、大きな問題が発生しました。MySQLデータベースとユーザーの作成

現在、スクリプトはキーと一緒にSSHを使用してクラウドサーバーに認証し、チーム内の誰でもコマンドを実行できます。私はこの方法を維持し、rootまたは高い権限を持つ他のユーザーとしてmysqlにログインする必要なく、何とか新しいMySQLデータベースとユーザーを作成できるようにしたいのですが、これには解決策はありません。

アイデア#1パスワードなしで新しいmysqlユーザーを作成し、rootなどのすべての権限を付与します@'localhost'

アイデア#2このMySQL制御ユーザーのパスワードをファイルに保存し、他のスクリプトで使用されている現在のSSHユーザーのみがアクセスできるようにすることです。その後、mysqlログインはこの保存されたパスワードを使用してログインし、データベースとユーザーを作成します。

どのオプションが良いかはわかりませんが、危険であることはわかっています。アドバイスとより良いアイデアを求めています。

ベストアンサー1

チームが使用する unix ユーザーと mysql ユーザーが必要な操作を続けることができますが、アクセス権を最小限に抑えることができます。どちらのアイデアも必要以上にアクセスできるようです。チームmysqlユーザーにとって良いことは次のとおりです。

  1. CREATEアクセス権または必要なすべてのアクセス権のみを持ちます(チームが実行できる操作を最小限に制限)。 GRANTステートメントを使用して、mysqlユーザーにアクセス権を付与できます。
  2. 所有者だけが読み取りアクセス権を持つファイルにユーザー/パスワードを保存します~/my.cnf(チームを制限しなくても、他の人はスクリプトを表示したときにログイン情報を表示できません)。

上記の作業は実行が容易で、大きな進歩を遂げています。

より良いアイデアですが、より多くの作業は、チームユーザーにデータベース作成へのアクセスを許可せずに、自分だけが制御してアクセスできる別のユーザースクリプトであるキューにサイトを設定するように依頼することです。必須)サイトを構築するために定期的に処理されます。キューは、1行に1つの要求を持つファイル、ファイルごとに1つの要求を持つディレクトリ、またはレコードごとに1つの要求を持つデータベーステーブルです。システムをどれだけ保護したいかによって異なります。

通常、root権限を持たないunixユーザーとmysqlユーザーを使用する必要があります。データベースを作成および削除し、頻繁に使用するタスクのみを実行できるmysqlユーザーを自分で作成しました。アクセス権を付与するために別のユーザーを設定する必要がある場合は、rootまたは同様の権限を持つユーザーを使用します。スクリプトは、問題が発生した場合のダメージを最小限に抑えるためにユーザーを最大限に制限します。

おすすめ記事