Linux mysql添加用戶,刪除用戶,以及用戶權限


一些主要命令:

登陸:

mysql -u username -p                       一般都是:mysql -u root -p         也可以:mysql -uroot -p

 

顯示全部的數據庫:

show databases;

 

使用某一個數據庫:

use databasename;                        注意:一般對於某個數據庫的操作,要基於這個數據庫操作

MySQL [(none)]> use test_db
Database changed
MySQL [test_db]>操作.......

 

顯示一個數據庫的全部表:

show tables;

 

show可以看到很多東西:

show create database dbname;     //這個可以看到創建數據庫時用到的一些參數;

show create table tablename;     //這個可以看到創建表時用到的一些參數;

 

退出:

quit;

 

刪除數據庫和數據表:

mysql>drop database 數據庫名;

mysql>drop table 數據表名;

 

用戶相關:

查看所有用戶:

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

注意:在Mysql中其實有一個內置且名為mysql的數據庫,這個數據庫中存儲的是Mysql的一些數據,比如用戶、權限信息、存儲過程等,所以呢,我們可以通過上面的查詢語句來顯示所有的用戶,就像這樣:

+------------------------------------+
| query                              |
+------------------------------------+
| User: 'root'@'127.0.0.1';          |
| User: 'mysql.session'@'localhost'; |
| User: 'mysql.sys'@'localhost';     |
| User: 'root'@'localhost';          |
+------------------------------------+
4 rows in set (0.01 sec)

 

注意:因為我加了 DISTINCT 所以去除了重復的數據,所以我們可以使用上面的命令顯示所有你的Mysql的用戶而忽略那些僅僅是主機名不同的用戶。

我的里面只有一個 root 用戶,如果你想增加或減少一些列的顯示,那么你只需要編輯這條sql語句即可,比如你只需要顯示用戶的用戶名,那么你就可以這樣使用SELECT User FROM mysql.user;,就是這樣了,是吧,就用這種方法就可以獲得所有用戶了呢。微笑。

 

新建用戶:

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin'; 

 

MySQL [(none)]> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin';
Query OK, 0 rows affected (0.01 sec)

 

為用戶授權:

格式:

grant 權限 on 數據庫.* to username@登錄主機 identified by "password";

例子:
我這里只有一個test_db數據庫!
grant all privileges on test_db.* to admin@localhost identified by 'admin';

    MySQL [(none)]> grant all privileges on test_db.* to admin@localhost identified by 'admin';
    Query OK, 0 rows affected, 2 warnings (0.01 sec)

然后需要運行刷新權限的命令:
flush privileges;

    MySQL [(none)]> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

 

這個時候牽扯到一個問題:如何查看用戶權限?來確認我是否已經修改成功了呢?

 

MySQL查看用戶權限命令的兩種方法:

一:使用MySQL grants

命令:show grants for username@localhost;

 

MySQL [(none)]> show grants for admin@localhost;                                +-----------------------------------------------------------+
| Grants for admin@localhost                                |
+-----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'admin'@'localhost'                 |
| GRANT ALL PRIVILEGES ON `testDB`.* TO 'admin'@'localhost' |
+-----------------------------------------------------------+
2 rows in set (0.00 sec)

 

二:直接通過MySQL select查詢語句

注:這里用到的還是上文說的 mysql.user 表

命令:select * from mysql.user where user='username' and host='localhost(根據自己情況)' \G;

 

MySQL [(none)]> select * from mysql.user where user='admin' and host='localhost' \G;
*************************** 1. row ***************************
                  Host: localhost
                  User: admin
           Select_priv: N
           Insert_priv: N
           Update_priv: N
           Delete_priv: N
           Create_priv: N
             Drop_priv: N
           Reload_priv: N
         Shutdown_priv: N
          Process_priv: N
             File_priv: N
            Grant_priv: N
       References_priv: N
            Index_priv: N
            Alter_priv: N
          Show_db_priv: N
            Super_priv: N
 Create_tmp_table_priv: N
      Lock_tables_priv: N
          Execute_priv: N
       Repl_slave_priv: N
      Repl_client_priv: N
      Create_view_priv: N
        Show_view_priv: N
   Create_routine_priv: N
    Alter_routine_priv: N
      Create_user_priv: N
            Event_priv: N
          Trigger_priv: N
Create_tablespace_priv: N
              ssl_type:
            ssl_cipher:
           x509_issuer:
          x509_subject:
         max_questions: 0
           max_updates: 0
       max_connections: 0
  max_user_connections: 0
                plugin: mysql_native_password
 authentication_string: *4ACFE3202A5FF5CF467898FC58AAB1D615029441
      password_expired: N
 password_last_changed: 2017-12-22 16:35:52
     password_lifetime: NULL
        account_locked: N
1 row in set (0.00 sec)

可以看到Select_priv,Insert_priv,Update_priv...等為N表示沒有權限,該用戶權限一目了然。

 

繼續咱們的為用戶授予權限,現在我們為用戶授予部分權限:

mysql>grant select,insert,update,delete,create,drop on test_db.user to admin@10.163.225.87 identified by ‘123′;

給來自10.163.225.87的用戶admin分配可對數據庫test_db的user表進行select,insert,update,delete,create,drop等操作的權限,並設定口令為123。

 

mysql>grant all privileges on test_db.* to admin@10.10.10.87 identified by ‘123′;

給來自10.163.225.87的用戶admin分配可對數據庫test_db所有表進行所有操作的權限,並設定口令為123。

 

mysql>grant all privileges on *.* to admin@10.10.10.87 identified by ‘123′;

給來自10.163.225.87的用戶admin分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123

 

mysql>grant all privileges on *.* to admin@localhost identified by ‘123′;

給本機用戶admin分配可對所有數據庫的所有表進行所有操作的權限,並設定口令為123。

 

刪除用戶:

@>mysql -u root -p

  @>密碼

  mysql>DELETE FROM mysql.user WHERE User="admin"

  mysql>flush privileges;

  //刪除用戶的數據庫

  mysql>drop database test_db;

 


修改指定用戶密碼:

  @>mysql -u root -p

  @>密碼

  mysql>update mysql.user set password=password('新密碼')  where User=”jeecn” and Host="localhost";

  mysql>flush privileges;


 mysql>quit;
---------------------
作者:顧米楠
來源:CSDN
原文:https://blog.csdn.net/qq_38350907/article/details/78873414
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM