mysql登陸,創建用戶,權限控制

 

一.如何登陸mysql:

1.下載安裝mysql數據庫:( 我們以5.5版本爲例進行學習)

注意:

(1)下載安裝時文件路徑中不要有中文,不然路徑不能解析,安裝會失敗。

(2)一般的數據庫軟件中有很多插件,選擇性的安裝,一般只需要client,server,database  

(3)在安裝數據庫的過程中會創建root用戶及可以備選的用戶,及密碼。

2.登陸mysql:

(1)第一種方式(一般本地連接):通過client登陸,默認使用的是root用戶,直接輸入密碼就可以登陸。如下圖所示:

         

(2)第二種方式(本地或者遠程連接):

         以windows爲例:在dos窗口中cd到mysql安裝目錄下的bin目錄,然後輸入一下命令

         >mysql -hlocalhost -uroot -p123456          -h後面的參數是請求連接的機器地址(一般本地連接時省略),-u後面接的是用戶名,-p後面接的是密碼

       

二.mysql數據庫用戶創建及權限管理:

1.創建用戶並賦權限:

(1)第一種方式:grant命令

        mysql>grant all privileges on *.* to username@hostname identified by 'password';

        mysql>flush privileges;                  //權限修改之後一定要記得刷新系統權限表才能生效

  格式:grant 權限 on 數據庫.表 to 用戶名@登錄主機 identified by "密碼"; 

       

       通過grant命令可以創建用戶同時分配權限,也可以給已有的用戶賦權限,而且權限可以重複附加(第一次給查的權限,第二次給刪的權限)

       hostname如果用“%”表示所有的機器都可以連接此數據庫。

(2)第二種方式:create user命令:

      mysql>create user ‘jwang13’@'localhost' identified by 'jwang13';

      mysql>flush privileges;

     

     注:通過這種方式創建用戶之後可以通過grant命令進行權限賦值。在創建用戶時identified by password爲可選項,不設置默認不用密碼

(3)第三種方式:直接往user表中插入一條記錄

         mysql>insert into user (user,host,password,.......) values('jwang12','localhost',password('jwang12'),.......);

         mysql>flush privileges;

         然後通過grant命令給用戶賦權限,這種方式一般很少用。

說明:user表中不同的數據庫版本中字段的名字不太一致,比如password字段在高版本的user表中就沒有,並且在插入時很多字段是默認不能爲空的,所以在創建用戶並賦權限的時候多采用第一種方式。

 2.查看用戶及主機:

      mysql庫中有一張user表,記錄了用戶的名稱,主機,密碼等信息

      mysql>select user,host,password from user;

      

 3.修改用戶的密碼:

     (1)第一種方式:修改用戶密碼實際上就是根據主機和用戶名來更改user表中的密碼,如下圖所示:

     mysql>update mysql.user set password='jwang13' where user='jwang' and host='localhost';

     mysql>flush privileges

       

    (2)第二種方式:在登陸時通過mysqladmin命令修改密碼;

           cd到mysql的安裝bin目錄,然後執行:

           mysqladmin -u username -p password newpassword

           Enter Password:*******       輸入舊密碼回車即可

           mysql -u username -p 

           Enter Password:*******       輸入新密碼回車即可進入數據庫環境

          

 4.刪除用戶信息:

    (1)刪除用戶:這種方式只是刪除了user表中的記錄

   mysql>Delete FROM user Where User='jwang' and Host='localhost';

   mysql>flush privileges;

    (2)刪除賬戶及權限:這種方式清除了有關該用戶的所有信息,包括權限信息

        mysql>drop user 用戶名@'%';

        mysql>drop user 用戶名@ localhost; 

        

注意:如果只是刪除了user表中的記錄的話權限信息依然存在,如果重新添加一個用戶和原先刪除的用戶一樣的話,那他默認會擁有原先同名用戶的權限信息。

5.mysql權限驗證過程:

    常識1:在mysql數據庫中,有mysql_install_db腳本初始化權限表,存儲權限的表有:

                 user,db,host,table_priv,columns_priv,proc_priv

        

 常識2:MySQL存取控制包含2個階段:     

              階段1服務器檢查你是否允許連接。

              階段2:假定你能連接,服務器檢查你發出的每個請求。看你是否有足夠的權限實施某個具體的請求(如select)

常識3:user表中有很多字段,大致分爲3類:

    (1)用戶列:host,user,password(有的版本的user表中沒有這個字段)

    (2)權限控制列:select_priv,insert_priv等以priv結尾的字段

    (3)安全控制列:ssl_type,ssl_cipher,x509_issuer,x509_subject(ssl用於加密,x509可以用來標識用戶)

    (4)資源控制列:max_questions:每小時可以允許有多少次查詢

                                   max_updates:每小時可以允許執行多少次更新

                                   max_connections:每小時可以建立多少次鏈接

                                   max_user_connects:單個用戶可以同時具有的連接數。

      注意:有的版本中沒有password,而是多了幾個與密碼相關的字段。在使用insert into user方法新建用戶時,user表中部分字段不能爲空,要設置默認值。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章