[解決済み] ユーザーに初めて権限を与えると、なぜ "GRANT USAGE "が作成されるのですか?
質問
私はDBMSの管理者側の初心者で、今夜新しいデータベース(MySQLを使用)をセットアップしていたときに、このことに気づきました。ユーザーに初めて権限を付与した後、次のような別のグラントが作成されます。
GRANT USAGE on *.* TO user IDENTIFIED BY PASSWORD password
ドキュメントによると
USAGE
と書いてあるので、グラントが階層的に働き、おそらくユーザはすべてのデータベースに対して何らかの特権を持たなければならないので、これがキャッチオールとして機能するのではと推測しているのですが、いかがでしょうか?
また、なぜこの行に
IDENTIFIED BY
節がないことも理解できません (ほとんどの場合、私が作成したグラントには
IDENTIFIED BY
節が何の役に立つのか理解できないからです)。
編集してください。 元々記載していなくて申し訳ないのですが、助成金は
GRANT ALL PRIVILEGES ON database.* TO admin_user
GRANT SELECT, INSERT, UPDATE, DELETE ON database.* TO user
どのように解決するのですか?
おっしゃるとおり、MySQLでは
USAGE
は、"no privileges" と同義です。から
MySQL リファレンスマニュアル
:
USAGE権限指定子は"no privileges.の略で、グローバルレベルでGRANTと共に使用され、既存のアカウント権限に影響を与えずにリソース制限やSSL特性などのアカウント属性を変更するために使用されます。
USAGE
は、そのアカウントに実際の特権を与えることなく、アカウントが存在することをMySQLに伝える方法です。彼らは単に、以下の権限を持つだけです。
を使用する
を使用する権限を持っているに過ぎず、したがって
USAGE
. の行に相当します。
`mysql`.`user`
テーブルの行に相当し、特権は設定されていません。
は
IDENTIFIED BY
節は、そのユーザにパスワードが設定されていることを示します。ユーザが本人であることをどうやって確認するのでしょうか?それは
を識別します。
を送信することで、本人であることを確認します。
ユーザーのパスワードは、特定のデータベースやテーブルに結びつかない、グローバルレベルのアカウント属性の1つです。また、この属性は
`mysql`.`user`
テーブルの中にあります。もしユーザーが他の権限を持っていない場合は
ON *.*
であれば、それらは
USAGE ON *.*
が付与され、そこにパスワードハッシュが表示されます。これはしばしば
CREATE USER
ステートメントの副作用です。この方法でユーザが作成された場合、最初は何の権限も持っていないので、単に
USAGE
.
関連
-
MySQLのLike演算子に関する詳細
-
MySQLインストールチュートリアル(Linux版
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
msql クエリでのエラー 'where 節' の不明な列 'yellow fruit'
-
[解決済み] KEYキーワードは何を意味するのか?
-
[解決済み] Mysqlでidを使用してテーブルから多くの行を削除する
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] MySQLの データベースへの **all** 特権付与
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL Innodb インデックスメカニズム詳細解説
-
MySQLインデックスベースストレステストの実装
-
SpringBootのMySQLへの接続は、バックエンドのインターフェイスの操作方法を書き込むためのデータを取得するために
-
MySQLで正規表現を使う 詳細
-
MySQLにおけるvarchar型とchar型の違い
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
Mysqlデータベースへのリンク時にpymysqlがConnection refusedエラーを報告する
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新