Mysql數據庫安裝使用教程04:新建用戶+授權+查看刪除用戶+退出/斷開連接

1、新建用戶修改用戶密碼

我的安裝配置好mysql後目前只有一個用戶就是root,並且此root用戶擁有最高權限,因此當我們需要別人也操作數據庫時,是不建議直接使用這個root用戶的。(mysql語句不區分大小寫,本人始終習慣小寫,故後續教程中語句都是小寫,當然建議是使用大寫的)

  1. 新建用戶的語句格式:

     create user 'username'@'host' identified by 'psaaword'
    
  2. 創建用戶語句格式解析:

    create user 'username'@'host' identified by 'psaaword'
    
    username:你創建用戶的用戶名;
    host:用戶登錄地址,指明該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,
    如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%,如果是特定的主機用戶可以配置ip地址;
    password:該用戶的登陸密碼,密碼可以爲空,如果爲空則該用戶可以不需要密碼登陸服務器;
    
    
  3. 創建用戶語句實例:

    /*此處以創建用戶,用戶名:goodman,密碼:123456,爲例*/
    
    創建本地登錄用戶goodman,密碼123456;
    create user 'goodman'@'localhost' identified by '123456';
    
    創建特定主機的登錄用戶goodman,密碼123456,主機ip爲:192.168.17.98;
    create user 'goodman'@'192.168.17.98' identified by '123456';
    
    創建可以從任意主機登錄改數據庫的登錄用戶goodman,密碼123456;
    create user 'goodman'@'%' identified by '123456';
    
    創建無登錄密碼的用戶:goodman;(兩種語句均可創建成功)
    create user 'goodman'@'192.168.17.98' identified by '';
    create user 'goodman'@'192.168.17.98';
    
    
  4. 修改用戶密碼:

    root用戶登錄修改別的用戶密碼語句格式:
    revoke psaaword for ‘username’@'host' = password('newpassword');
    
    將本地用戶goodman登錄密碼改爲111111
    revoke psaaword for ‘goodman’@'localhost' = password('111111');
    
    用戶登錄修改自己的登錄密碼語句格式:
    set psssword = password('newpassword');
    
    本地用戶goodman修改自己的登錄密碼改爲111111
    set psssword = password('111111');
    

2、給用戶授權+撤銷授權

  1. 給用戶授權語句格式:
    grant privileges on database.tablename to 'username'@'host'
    以上語句給用戶授權後,這個用戶不能再給別的用戶授權,可以使用這個命令,這樣被授權的用戶也可以可別的用戶授權:
    grant privileges on database.tablename to 'username'@'host' with grant option

  2. 給用戶授權語句格式說明:

    grant privileges on database.tablename to 'username'@'host'
    

    privileges:用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL
    databasename:數據庫名
    tablename:表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*****表示,如*.*(是星號加點再加一個星號,第一個星號表示所有數據庫,點表示數據庫連接表,最後一個星號表示所有表。所有*.*表示這個用戶可以操作所有數據庫中的所有表)
    ’username’@‘host’:授權給哪個用戶

  3. 給用戶授權實例(假設數據庫名是student,表名是name):

    給本地用戶goodman授權select與insert操作權限,操作的數據庫是student中的name表
    grant select,insert on sutdent.name to 'goodman'@'localhost';
    
    給本地用戶goodman授權所有可操作性權限,並且可以操作任意數據庫對應下的任意表
    grant ALLt on *.* to 'goodman'@'localhost';
    
    給本地用戶goodman授權所有可操作性權限,並且可以操作student數據庫下的任意表
    grant ALLt on student.* to 'goodman'@'localhost';
    

假如你在給用戶’goodman’@'localhost’授權的時候是這樣的(或類似的):GRANT SELECT ON sutdent.name TO ‘goodman’@'localhost,則在使用REVOKE SELECT ON . FROM ‘goodman’@'localhost;命令並不能撤銷該用戶對sutdent數據庫中name表的SELECT 操作。

相反,如果授權使用的是GRANT SELECT ON . TO ‘goodman’@‘localhost’;則REVOKE SELECT ON sutdent.name FROM ‘goodman’@‘localhost’;命令也不能撤銷該用戶對sutdent數據庫中name表的Select權限。

  1. 查看用戶所授權限

    show grants;查看當前登錄用戶自己當前權限
    
    show grants for 'username'@'host'; 查看特定用戶的權限
    
    查看本地用戶goodman的權限
    show grants for 'goodman'@'localhost';
    
  2. 取消用戶授權:

    revoke privilege on databasename.tablename from 'username'@'host';
    
    取消本地用戶goodman的insert權限:
    revoke insert on databasename.tablename from 'goodman'@'localhost';
    
    取消本地用戶goodman的所以可操作權限:
    revoke all on databasename.tablename from 'goodman'@'localhost';
    

3、查看+刪除用戶

  1. 查看都有哪些用戶:

     查看數據庫所有用戶
     select user,host from mysql.user
    
    也可使用如下語句,顯示更加詳細:
    select distinct concat('User: ''',user,'''@''',host,''';') as query from mysql.user;
    

    在這裏插入圖片描述

  2. 刪除用戶:

    drop user 'username'@'host';
    

4、退出斷開連接

  1. 退出/斷開連接:exit;或quit;或 \q;或ctrl+c;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章