• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ユーザー名にアンダーバーを含む場合のデータベース作成について)

ユーザー名にアンダーバーを含む場合のデータベース作成について

このQ&Aのポイント
  • ユーザー名にアンダーバーを含む場合のデータベース作成についての質問です。
  • SQLを実行すると、特定のデータベースに対してALL権限を持つユーザーが作成されます。
  • ALL権限にはCREATE権限も含まれますが、特定のデータベースに対してALL権限を与えた場合、そのデータベースに対してCREATE権限も付与されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

アンダースコア脆弱性のことかな http://news.livedoor.com/article/detail/546720/ 概要、_ アンダースコアは、SQLのワイルドカードのため、そのままでは、何か1文字にマッチしてしまうということ(ワイルドカードを使いたい状況もあるので、使えなくはできない) 対策:データベース名にアンダースコアが含まれる場合、バックスラッシュで(Unixシェルによっては2つ)エスケープされるべき。どんなコマンドにおいても常にということ。 http://dev.mysql.com/doc/refman/5.1/ja/mysqlshow.html

admsmith
質問者

お礼

回答ありがとうございます。 アンダースコア脆弱性!まさにこれでした。ありがとうございます。 てっきりgrant の際のユーザー名のアンダースコアが今回の症状に影響していると思ってましたが、grant のデータベース名が影響してたんですね。 とってもすっきりしました。ありがとうございました。

その他の回答 (1)

noname#119957
noname#119957
回答No.1

ALL権限には「create database」を許可するCREATE権限が含まれます >> そうではなく、CREATE TABLE の使用を許可するのではありませんか? 「demotdemo」などのデータベースが作成できてしまうのはmysql の仕様でしょうか? >>OSのファイル名作成の仕様ではありませんか?

admsmith
質問者

補足

回答ありがとうございます。 マニュアルにはCREATE権限は「create database」と「create table」の権限とあるのです。 また、「OSのファイル名作成の仕様」の部分が理解できなかったのですが、データベース名がなんであれ、最終的な作成可否についてはデータベースサーバーが判断するところと思うのですが、私の理解がまちがえてるのでしょうか? お願いします。

関連するQ&A