サーチ…


ベストプラクティス

ルート(および他のSUPER特権ユーザー)を

GRANT ... TO root@localhost ...

これにより、他のサーバーからのアクセスが防止されます。あなたは非常に少数の人にSUPERを渡すべきです、そして、彼らは彼らの責任を認識するべきです。アプリケーションはSUPERを持つべきではありません。

アプリケーションログインは、使用する1つのデータベースに制限します。

GRANT ... ON dbname.* ...

そうすれば、アプリケーションコードをハックする人はdbnameを越えることができません。これは、次のいずれかによってさらに洗練されます。

GRANT SELECT ON dname.* ...    -- "read only"
GRANT ... ON dname.tblname ... -- "just one table"

読み込み専用には、「安全な」ものが必要な場合もあります

GRANT SELECT, CREATE TEMPORARY TABLE ON dname.* ...    -- "read only"

あなたが言うように、絶対的なセキュリティはありません。私のここでのポイントは、あなたがハッカーを遅らせるためにいくつかのことを行うことができることです。 (正直な人たちのために同じことが起こります。)

ごくまれに、rootだけが利用可能な何かを行うためにアプリケーションが必要な場合があります。これは、 SECURITY DEFINERを持つ「ストアドプロシージャ」(およびルートがそれを定義する)を介して実行できます。それは、SPが行うことだけを公開します。たとえば、ある特定のテーブルで特定のアクションが実行されます。

ホスト(user @ hostの)

「ホスト」は、ホスト名またはIPアドレスのいずれかです。また、ワイルドカードも使用できます。

GRANT SELECT ON db.* TO sam@'my.domain.com' IDENTIFIED BY 'foo';

例:注:これらは通常引用する必要があります

localhost -- the same machine as mysqld
'my.domain.com' -- a specific domain; this involves a lookup
'11.22.33.44' -- a specific IP address
'192.168.1.%' -- wild card for trailing part of IP address.  (192.168.% and 10.% and 11.% are "internal" ip addresses.)

localhostを使用すると、サーバーのセキュリティに依存します。ベストプラクティスのためには、 rootはlocalhostを通してのみ許可されるべきです。場合によっては、これらは同じことを意味します: 0.0.0.1::1



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow