権限とデータベース設計 ユーザー管理
/* ユーザーと権限の管理 */ ------------------ ユーザー情報テーブル: mysql.user -- 権限をフラッシュする -- ユーザーの追加 CREATE USER kuangshen IDENTIFIED BY '123456' CREATE USER ユーザー名 IDENTIFIED BY [PASSWORD] パスワード (文字列) - mysql データベースに対するグローバル CREATE USER 権限、または INSERT 権限を持っている必要があります。 - ユーザーの作成のみ可能で、権限を付与することはできません。 - ユーザー名、引用符に注意してください: 例: 'user_name'@'192.168.1.1' - パスワードも引用符で囲む必要があり、純粋な数字のパスワードも引用符で囲む必要があります - パスワードをプレーンテキストで指定するには、PASSWORD キーワードを省略します。 PASSWORD() 関数によって返されるハッシュ値としてパスワードを指定するには、キーワード PASSWORD を含めます。 -- ユーザーの名前を変更する RENAME USER kuangshen TO kuangshen2 ユーザー名 old_user を new_user に変更 -- パスワードを設定する SET PASSWORD = PASSWORD('password') -- 現在のユーザーのパスワードを設定する SET PASSWORD FOR username = PASSWORD('password') -- 指定したユーザーのパスワードを設定する -- ユーザーを削除する DROP USER kuangshen2 DROP USER username -- 権限の割り当て/ユーザーの追加 GRANT permission list ON table name TO username [IDENTIFIED BY [PASSWORD] 'password'] - すべての権限はすべての権限を意味します - *.* はすべてのライブラリ内のすべてのテーブルを意味します - ライブラリ名.テーブル名はライブラリの下のテーブルを意味します - 表示権限 SHOW GRANTS FOR root@localhost; SHOW GRANTS FOR username - 現在のユーザー権限を表示します SHOW GRANTS; または SHOW GRANTS FOR CURRENT_USER; または SHOW GRANTS FOR CURRENT_USER(); -- 権限を取り消す REVOKE permission list ON table name FROM user name REVOKE ALL PRIVILEGES, GRANT OPTION FROM user name -- すべての権限を取り消す
-- 権限リスト ALL [PRIVILEGES] -- GRANT OPTION ALTERを除くすべての単純な権限を設定します -- ALTER TABLEの使用を許可します ALTER ROUTINE -- ストアド プロシージャを変更または削除します CREATE -- CREATE TABLE の使用を有効にします CREATE ROUTINE -- ストアドルーチンを作成する CREATE TEMPORARY TABLES -- CREATE TEMPORARY TABLEの使用を許可する CREATE USER - CREATE USER、DROP USER、RENAME USER、および REVOKE ALL PRIVILEGES の使用を有効にします。 CREATE VIEW -- CREATE VIEWの使用を許可します DELETE -- DELETEの使用を許可します DROP -- DROP TABLEの使用を許可します EXECUTE -- ユーザーがストアド プロシージャを実行できるようにします。 FILE -- SELECT ... INTO OUTFILE および LOAD DATA INFILE の使用を許可します。 INDEX -- CREATE INDEX と DROP INDEX の使用を許可します INSERT -- INSERTの使用を許可します LOCK TABLES - SELECT 権限を持つテーブルに対して LOCK TABLES を使用できます。 PROCESS -- SHOW FULL PROCESSLIST の使用を有効にする REFERENCES -- 実装されていません RELOAD -- FLUSH は許可されています レプリケーション クライアント - ユーザーがスレーブ サーバーまたはマスター サーバーのアドレスを問い合わせることができます。レプリケーション スレーブ - レプリケーション スレーブ サーバー (マスター サーバーからバイナリ ログ イベントを読み取る) SELECT -- SELECTの使用を許可する SHOW DATABASES -- すべてのデータベースを表示します SHOW VIEW -- SHOW CREATE VIEWの使用を有効にします SHUTDOWN -- mysqladmin シャットダウンの使用を許可する SUPER - CHANGE MASTER、KILL、PURGE MASTER LOGS、SET GLOBAL ステートメント、および mysqladmin debug コマンドの使用を有効にします。max_connections に達した場合でも、接続 (1 回) できます。 UPDATE -- UPDATEの使用を許可する USAGE -- 「権限なし」の同義語 GRANT OPTION -- 権限の付与を許可する /* テーブルメンテナンス */ -- テーブルのキーワード分布を分析して保存します。ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE テーブル名... -- 1 つ以上のテーブルにエラーがないか確認します CHECK TABLE tbl_name [, tbl_name] ... [オプション] ... オプション = {QUICK | FAST | MEDIUM | EXTENDED | CHANGED} -- データ ファイルをデフラグします OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... MySQL バックアップデータベースバックアップの必要性
MySQLデータベースのバックアップ方法
mysqldump クライアント 効果:
-- エクスポート 1. テーブルをエクスポートします -- mysqldump -uroot -p123456 school student >D:/a.sql mysqldump -u ユーザー名 -p パスワード データベース名 テーブル名 > ファイル名 (D:/a.sql) 2. 複数のテーブルをエクスポートする -- mysqldump -uroot -p123456 school student result >D:/a.sql mysqldump -u ユーザー名 -p パスワード データベース名 テーブル 1 テーブル 2 テーブル 3 > ファイル名 (D:/a.sql) 3. すべてのテーブルをエクスポートします --mysqldump -uroot -p123456 school >D:/a.sql mysqldump -u ユーザー名 -p パスワード データベース名 > ファイル名 (D:/a.sql) 4. ライブラリをエクスポートします -- mysqldump -uroot -p123456 -B school >D:/a.sql mysqldump -u ユーザー名 -p パスワード -B データベース名 > ファイル名 (D:/a.sql) -w を使用してバックアップ条件を実行できます -- インポート 1. mysql にログインする場合: -- source D:/a.sql ソースバックアップファイル 2. ログインせずに、mysql -u ユーザー名 -p パスワード データベース名 < バックアップファイル 正規化されたデータベース設計なぜデータベース設計が必要なのでしょうか?データベースが複雑な場合は、データベースを設計する必要があります 不適切なデータベース設計:
優れたデータベース設計:
ソフトウェア プロジェクト開発サイクルにおけるデータベース設計:
データベースを設計する手順
3つのパラダイム質問: データの正規化はなぜ必要なのでしょうか? 不適切なテーブル設計によって発生する問題:
第一正規形(1st NF) 最初のパラダイムの目標は、各列の原子性を保証することです。各列が最小の分割不可能なデータ単位である場合、最初のパラダイムは満たされます。 第 2 正規形 (2nd NF) 第 2 正規形 (2NF) は第 1 正規形 (1NF) に基づいて構築されます。つまり、第 2 正規形 (2NF) を満たすには、まず第 1 正規形 (1NF) を満たす必要があります。 2番目のパラダイムでは、各テーブルが1つのことだけを記述する必要がある。 第 3 正規形 (3rd NF) リレーションが第 2 正規形であり、主キー以外の列が主キー列に推移的に依存していない場合、そのリレーションは第 3 正規形になります。 3 番目のパラダイムでは、データ テーブル内の各データ列が主キーに間接的ではなく直接的に関連付けられていることを確認する必要があります。 正規化とパフォーマンスの関係 特定のビジネス目標を達成するには、データベースの正規化よりもデータベースのパフォーマンスの方が重要です。 データを正規化する場合、データベースのパフォーマンスを総合的に考慮する必要があります。 特定のテーブルに追加のフィールドを追加することで、そのテーブル内の情報の検索にかかる時間を大幅に短縮できます。 計算列を特定のテーブルに挿入すると、クエリが簡単になります。 MySQL のパーミッションとデータベース設計事例に関する記事はこれで終了です。MySQL のパーミッションとデータベース設計についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Podmanはコンテナを自動的に起動し、Dockerと比較します
>>: レイアウトサイズを変更するために左右にドラッグする純粋なCSS
親ディレクトリを指定する方法../ はソース ファイルの親ディレクトリを表し、../../ はソース...
RDF と OWL は、2 つの重要なセマンティック ウェブ テクノロジーです。 RDF と OWL...
MySQL のバージョン番号は 5.7.28 です。テーブル A には 390 万件のレコードがあり...
環境ホスト名IPアドレス仕えるジェンキンス192.168.216.200トムキャット、ジェンキンスサ...
目次MySQL 内部結合、左結合、右結合、外部結合、複数テーブルクエリビルド環境: 1. 内なる慈恩...
なぜテキストエリアについて具体的に言及するのでしょうか?なぜなら、textarea ノードは実際には...
ユーザーから情報を収集する場合、Web フォームを使用するより簡単で直接的な方法はありません。適切に...
描画効果実装コードJavaScript var キャンバス = document.getElemen...
目次序文&& 演算子|| 演算子|| 演算子の簡単なデモ章の目的ケース演習(json...
[LeetCode] 180. 連続した数字少なくとも 3 回連続して出現するすべての数字を検索す...
目次序文1. ロックとは何ですか? 2. InnoDBストレージエンジンのロック2.1 ロックの種類...
この記事では、参考までに、計算機を実装するためのWeChatアプレットの具体的なコードを紹介します。...
ケース1: 最後の提出とプッシュなし次のコマンドを実行します。 git コミット --amend g...
需要シナリオ: 既存の PXC 環境には大量のデータがあります。新しく購入したサーバーをこのクラスタ...
1 公式サイトからMySQL8をダウンロードしてインストールするMySQL8 ダウンロードアドレスこ...