ゼロからMySQL-データベース管理を学ぶ--003


MySQLアクセス制御システム入門
MySQLアクセス制御は2つの部分で構成されています
  • 接続時検証:有効なユーザー名とパスワードを使用してログイン操作
  • を行う.
  • 実行時検証:実行する必要があるSQL文ごとに、MySQLはログインしたユーザーが文
  • を実行するのに十分な権限を持っているかどうかを確認します.
    権限の場所
    mysqlデータベースには、5つの主要なライセンステーブルが含まれています.
  • userテーブル:ユーザーアカウントとグローバル権限列が含まれます.私たちがログインしたユーザー情報はすべてここに保存されています.
  • dbテーブル:データベース・レベルの権限が含まれます.
  • table_privとcolumns_privテーブル:テーブルレベルとカラムレベルの権限が含まれます.
  • procs_privテーブル:ストレージ関数とストレージ・プロシージャの権限が含まれます.

  • ユーザーアカウントの作成
    create user yourName identified by 'password';
    
    create user yl@localhost identified by 'yl';--      
    create user yl@% identified by 'yl';--           
    create user yl@192.168.0.110 identified by 'yl';--    ip    
    
    --      
    show grants for yl@localhost;
    
    ---GRANT USAGE ON *.* TO 'yl'@'localhost' IDENTIFIED BY PASSWORD '*    '
    
    --*.*    yl                ,       
    --       :       ,      
    
    --    、     ,         
    flush privileges; 
    

    権限の付与
    GRANT privilege,[privilege],.. ON privilege_level
    TO user [IDENTIFIED BY password]
    [REQUIRE tsl_option]
    [WITH [GRANT_OPTION | resource_option]];
    
    --      
    grant all on *.* to 'yl'@'localhost' with grant option;
    
    show grants for yl@localhost;
    
    --GRANT ALL PRIVILEGES ON *.* TO 'yl'@'localhost' IDENTIFIED BY PASSWORD '*    ' WITH GRANT OPTION
    
    flush privileges; 
    

    権限の取り消し
    REVOKE privilege_type [(column_list)]
    [, priv_type [(column_list)]]...
    ON [object_type] privilege_level
    FROM user [, user]...
    
    revoke all privileges, grant option from yl;
    

    1つ以上のユーザーアカウントを削除
    use mysql;
    select user, host from mysql.user;
    
    --    ,        (,)  
    drop user 'yl@localhost';
    
    --  :                ,                  ,                 
    show processlist;
    kill id;--  id
    drop user yl@localhost;
    

    データベースのバックアップ
    mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]
    
    [username] :    MySQL   。
    [password] :        。    , -p          。
    [database_name] :          
    [dump_file.sql] :         
    
    --Mysql         :
    mysqldump -h     -P   -u    -p   (database)      >    .sql
    
    --1、  MySQL      
    mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
    
    --2、  MySQL           ,                          。
    mysqldump -add-drop-table -uusername -ppassword databasename > d:\111.sql
    
    --3、   MySQL       
    mysqldump -hhostname -uusername -ppassword databasename | gzip > d:\111.sql.gz
    
    --4、  MySQL     ( ) 
    mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > d:\111.sql
    
    --5、      MySQL   
    mysqldump -hhostname -uusername -ppassword –-databases databasename1 databasename2 databasename3 > d:\111.sql
    
    --6、        
    mysqldump -uroot -proot –-no-data-databases project3 project3 project4 > d:\111.sql
    
    --7、           
    mysqldump -uroot -proot –-all-databases > d:\111.sql
    

    データベースのリカバリ
    データベースのリストアには、sourceコマンド、mysqlコマンド、gunzipコマンドの3つの方法があります.
    ソースコマンド
      mysql      ,  
    mysql -u root -p
    mysql>use    
        source  ,         (      .sql)
    mysql>source  d:\test.sql
    

    mysql
    mysql -hhostname -uusername -ppassword test < d:\test.sql
    

    gunzipコマンド
    gunzip < d:\test.sql.gz | mysql -uusername -ppassword test
    

    その他の表示コマンド
    --        
    show databases;
    
    --       (pro%: pro  ;%pro: pro  ;%pro%:  pro)
    show databases like '%pro%';
    
    --          
    show tables;
    
    --             
    show full tables;
    create view selectAll as select * from employee;
    
    --              ,    
    
    --     
    describe employee;
    desc employee;
    show columns from employee;
    show full columns from employee;
    --             
    show full columns from employee like '%pro%'
    
    --      
    select user from mysql.user;
    
    --        
    select user();