MySQL ROLE はどのような問題を解決しますか? プロフェッショナルな資質を持ち、権限管理に細心の注意を払っているDBAであれば、次のような問題に遭遇したことがあるかもしれません。データベースに複数の開発者アカウントがあり、ある日、 以前のすべてのアカウントが新しいスキーマのテーブルを操作できるようにするには、MySQL-8.0 の前に最初のアカウントに個別に権限を付与する必要があります。 mysql-8.0.x は権限を抽象化し、ROLE を使用して権限を表します。ROLE に新しい権限を追加すると、この ROLE に関連付けられているすべてのユーザーの権限も変更されます。 上記のシナリオは、MySQL 8.0.x では 1 つの SQL ステートメントだけで解決できます。 【スマートなMySQL開発】 MySQL は ROLE を非常に巧妙な方法で導入しました。ROLE は一連の権限のシンボルなので、この機能はすでに MySQL に存在しています。それはユーザーです。 1): キャラクターを作成する ロール devgroup を作成します。 mysql.user テーブルを見ると、MySQL の機知に本当に驚きました。 mysql.user からユーザー、ホストを選択します。 +------------------+-----------+ | ユーザー | ホスト | +------------------+-----------+ | 開発グループ | % | | バックアップ | 127.0.0.1 | | mysql.sys | ローカルホスト | | ルート | ローカルホスト | +------------------+-----------+ 役割は実際には単なるユーザーです。 2): 役割を強化する tempdb.* のすべての権限を devgroup に付与します。 クエリは正常、影響を受けた行は 0 行 (0.07 秒) 操作ユーザーと全く同じです! 3): ユーザーを作成し、ロール権限を割り当てる '123456' で識別されるユーザー tom@'127.0.0.1' を作成します。 クエリは正常、影響を受けた行は 0 行 (0.09 秒) tom@'127.0.0.1' に devgroup を付与します。 クエリは正常、影響を受けた行は 0 行 (0.09 秒) 4): 新しく作成したユーザーがログインできるかテストする mysql -h127.0.0.1 -P3306 -utom -p123456 mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは16です サーバーバージョン: 8.0.13 MySQL コミュニティサーバー - GPL Copyright (c) 2000, 2018, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> 権限を表示します。 +------------------------------------------+ | [email protected] への許可 | +------------------------------------------+ | `tom`@`127.0.0.1` に *.* の使用権限を付与 | | `devgroup`@`%` を `tom`@`127.0.0.1` に付与します | +------------------------------------------+ セット内の 2 行 (0.00 秒) [役割とユーザーは同じコインの裏表です] それでも「役割」と「ユーザー」は別のものだと考えているなら、私は究極の手段を使うしかない 1): [email protected] ユーザーを、先ほどの tom ユーザーにロールとして割り当てます。 root@'127.0.0.1' を tom@'127.0.0.1' に付与します。 クエリは正常、影響を受けた行は 0 行 (0.04 秒) 2): ユーザー tom が自分の権限を確認する 助成金を表示する。 +----------------------------------------------------------------+ | [email protected] への許可 | +----------------------------------------------------------------+ | `tom`@`127.0.0.1` に *.* の使用権限を付与 | | `devgroup`@`%`,`root`@`127.0.0.1` を `tom`@`127.0.0.1` に付与します | +----------------------------------------------------------------+ セット内の 2 行 (0.00 秒) [email protected] の権限が設定されていることがわかります。すべて root ユーザーの権限なので、tempdb ライブラリを削除して確認してみましょう。 3): ライブラリを削除する データベース tempdb を削除します。 エラー 1044 (42000): ユーザー 'tom'@'127.0.0.1' によるデータベース 'tempdb' へのアクセスが拒否されました このライブラリを削除する権限がないようです。実際、MySQL-8 はデフォルトではロールをアクティブ化しません。ロールをアクティブ化するかどうかは、パラメータ activate_all_roles_on_login によって制御されます。 4): activate_all_roles_on_login を有効にする @@global.activate_all_roles_on_login=1 を設定します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) 5): トムに再度ログインし、tempdbデータベースを削除してみます。 mysql -h127.0.0.1 -P3306 -utom -p123456 mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。 MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは18です サーバーバージョン: 8.0.13 MySQL コミュニティサーバー - GPL Copyright (c) 2000, 2018, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> tempdb を使用します。 データベースが変更されました mysql> データベースを表示します。 +--------------------+ | データベース | +--------------------+ | 情報スキーマ | |mysql | | パフォーマンススキーマ | |システム| | tempdb | +--------------------+ セット内の 5 行 (0.01 秒) mysql> データベース tempdb を削除します。 クエリは正常、影響を受けた行は 0 行 (0.09 秒) 以上がMySQL 8の新機能ROLEの詳しい説明です。MySQL 8の新機能ROLEの詳細については、123WORDPRESS.COMの他の関連記事にも注目してください! 以下もご興味があるかもしれません:
|
<<: 画像とテキストでHTTPヘッダーのあらゆる側面を理解する
>>: Dockerコンテナとホスト間のデータ相互作用の概要
Nestjs 例外フィルターといえば、非常に強力な .Net のグローバル フィルターについて触れな...
目次シナリオコードの実装要約:シナリオ最近、ElementUI をベースにしたバックグラウンド管理シ...
1. ディスクパーティション: 2. fdiskパーティションディスクが2 TB未満の場合はfdis...
Element UIのtextarea input自動サイズに設定すると、テキストボックスのデフォル...
本から学ぶことは常に浅はかで、これがさらなるダウンタイムを引き起こすことには決して気づきません......
1.すべてのIPアドレスが3つのページa1.htm、a2.htm、a3.htmにアクセスするのを禁止...
(1)HTTPリクエストを減らす。 (リソース ファイルをマージし、イメージ スプライトを使用します...
1. MySQLをシャットダウンする [root@localhost /]# サービスmysqldを...
MySQL 5.7.21 winx64無料インストールバージョンの設定方法、参考までに、具体的な内容...
バイオニックデザインといえば、飛行機の発明、ドバイのブルジュ・アル・アラブ、平泳ぎなどを思い浮かべる...
この記事は51CTOブログの著者wjw555の作品を参照しています。スクリプトの内容: vim イン...
目次予備的注釈問題の再現データ削除の原則データの再利用どの操作がデータホールの原因になりますか?表領...
序文Linux 環境で作業するエンジニアは、これらの面倒な命令とパラメータのコマンドラインにきっと驚...
ページをナビゲートする2つの方法宣言型ナビゲーション: リンクをクリックしてナビゲーションを実現する...
前回の記事では、docker サービスをインストールしました。引き続き、Web プロジェクトのデプロ...