MySQLアカウント名はユザ名とホスト名で構成されます。これにより、別々のホストから接続可能な同じ名前を持つユーザーのためのアカウントを作成できます。このセクションでは、特殊な値やワイルドカードルールを含む、アカウント名の記述方法について説明します。
创建用户
、格兰特
、设置密码
などのSQLステトメントでは,次のルルを使用してアカウント名を記述してください。
アカウント名の構文は
'
です。user_name
“@”host_name
'ユ,ザ,名のみで構成されるアカウント名は,
'
と同等です。たとえば,user_name
' @ ' % '“我”
は“我”@“%”
と同等です。ユ,ザ,名およびホスト名は,それらが引用符なしの識別子として有効な場合,引用する必要はありません。引用符が必要なのは,
user_name
文字列が特殊文字(「-
」など)を含んでいたり,host_name
文字列が特殊文字またはワ▪ルドカ▪ド文字(「%
」など)を含んでいたりする場合で,たとえば“试用者,“@”%。com”
のようになります。ユ、ザ、名およびホスト名は、逆引用符(「
`
」)、単一引用符 (「'
」),または二重引用符(「"
」)のいずれかを使用して,識別子または文字列として引用符で囲みます。ユ,ザ,名およびホスト名の部分が引用符で囲まれる場合,別々に囲んでください。まり,
“我”@“localhost”
と記述し,“me@localhost”
とは記述しません。後者は“me@localhost”@“%”
と解釈されます。CURRENT_USER
またはCURRENT_USER ()
関数への参照は,現行クラアントのユザ名およびホスト名の文字を指定することと同等です。
MySQLは,mysql
データベースの付与テーブルにアカウント名を格納するとき,ユーザー名とホスト名の部分に別々のカラムを使用します。
用户
テブルにはアカウントごとに1行が格納されます。用户
および宿主
カラムはユ,ザ,名およびホスト名を格納します。このテブルには,アカウントが持グロバル権限も指定されます。ほかの付与テーブルには,データベースおよびデータベース内のオブジェクトに対してアカウントが持つ権限が示されます。これらのテ,ブルにはアカウント名を格納するための
用户
および宿主
カラムがあります。これらのテ,ブルの各行は,同じ用户
および宿主
の値を持用户
テ,ブル内のアカウントに関連付けられています。
付与テブル構造に関する追加の詳細にいては,”@“localhost”のように引用符で囲んだ空のユ,ザ,名部分を使用します。
アカウント名のホスト名部分は多くの形式を持。
ホスト値はホスト名またはIPアドレス(IPv4またはIPv6)とすることができます。
“localhost”
という名前はロ,カルホストを示します。IPアドレス“127.0.0.1”
はIPv4ルプバックンタフェスを示します。IPアドレス“::1”
は,IPv6ルプバック@ @ンタフェスを示します。ワ▪▪ルドカ▪▪ド文字「
%
」および「_
」を,ホスト名またはIPアドレスの値に使用できます。これらは就像
演算子で実行されるパタンマッチング演算と同じ意味を持ます。たとえば,ホスト値“%”
はあらゆるホスト名に一致し,“% 10bet靠谱.mysql.com”
という値は10bet靠谱
ドメ电子邮箱ン内のすべてのホストに一致し,“192.168.1. %”
は192.168.1のクラスcネットワ,クのあらゆるホストに一致します。IPワルドカド値をホスト値に使用できるため(サブネット上のすべてのホストに一致する
“192.168.1. %”
など),一部のユ,ザ,がホスト192.168.1.somewhere.com
を指定することによって,この機能を悪用しようとする可能性があります。このような試みを阻止するために,MySQLでは,数字およびドットで始まるホスト名との一致が許可されていません。したがって,1.2.example.com
のような名前を持ホストがある場合,その名前はアカウント名のホスト部分と決して一致しません。IPワルドカド値は,ホスト名でなくIPアドレスのみと一致することができます。IPv4アドレスで指定されるホスト値について,ネットワーク番号に使用するアドレスビットの数を示すネットマスクを指定することができます。ネットマスク表記はIPv6アドレスにいては使用できません。
構文は
です。例:host_ip
/子网掩码
创建用户'david'@'192.58.197.0/255.255.255.0';
これにより
大卫
は,次の条件がtrueとなるIPアドレスclient_ip
を持すべてのクラアントホストから接続できます。client_ip&子网掩码=host_ip
まり,次のような
创建用户
ステ,トメントがあるとします。client_ip& 255.255.255.0 = 192.58.197.0
この条件を満たし,MySQLサ,バ,に接続できるIPアドレスは,
192.58.197.0
から192.58.197.255
までの範囲のものです。ネットマスクは、8、16、24、または32ビットのアドレスを使用するようサーバーに指示するためにのみ使用できます。例:
192.0.0.0/255.0.0.0
: 192のクラスaネットワ,ク上のすべてのホスト192.168.0.0/255.255.0.0
: 192.168のクラスbネットワ,ク上のすべてのホスト192.168.1.0/255.255.255.0
: 192.168.1のクラスcネットワ,ク上のすべてのホスト192.168.1.1
:この特定のIPアドレスを持ホストのみ
次のネットマスクは28ビットをマスクしますが,28は8の倍数でないため機能しません。
192.168.0.1/255.255.255.240
サーバーは,クライアントホスト名またはIPアドレス用のシステムDNSリゾルバによって返された値を使用して,アカウント名のホスト値の突き合わせをクライアントホストに対して実行します。アカウントホスト値がネットマスク記法を使用して指定される場合を除き,この比較はIPアドレスとして指定されるアカウントホスト値であっても文字列の突き合わせとして実行されます。つまり、DNSによって使用されるのと同じ形式でアカウントホスト値を指定しなければならないということを意味します。留意するべき問題の例を次に示します。
ロ,カルネットワ,ク上のホストの完全修飾名が
host1.example.com
だとします。DNSがこのホストの名前参照をhost1.example.com
として返す場合,アカウントホスト値にこの名前を使用します。ただし,dnsがhost1
のみを返す場合,代わりにhost1
を使用します。DNSが特定のホストのIPアドレスとして
192.168.1.2
を返す場合,これはアカウントホスト値192.168.1.2
と一致しますが192.168.01.2
とは一致しません。同様に,これは192.168.1. %
のようなアカウントホストパタ,ンに一致しますが192.168.01. %
には一致しません。
このような問題を避けるために,DNSがホスト名およびアドレスを返す際の形式を確認し,同じ形式の値をMySQLアカウント名に使用するようにすることをお勧めします。