MySQL 使用者管理與許可權管理

來源:互聯網
上載者:User

標籤:匹配   index   檢查   補充   ssl   localhost   範圍   ipv4   授權   

                                                                                                              MySQL 使用者管理與許可權管理

-- 作業環境
mysql> show variables like ‘version‘;  
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| version       | 5.6.25 |
+---------------+--------+
1 row in set (0.04 sec)

背景知識補充:
user   表中 host 列的值的意義
%            匹配所有主機
localhost    localhost 不會被解析成 IP 位址,直接通過 UNIXsocket 串連
127.0.0.1    會通過 TCP/IP 協議串連,並且只能在本機訪問;
::1 ::1      就是相容支援 ipv6 的,表示同 ipv4 的 127.0.0.1

一: 使用者管理

1. 查看使用者
mysql> select host,user,password from mysql.user where user like ‘andy‘; 

2. 建立資料庫使用者
--指定密碼建立新使用者,%表示任意,即 andy02 可以從任意主機訪問資料庫  
mysql> create user ‘andy02‘@‘%‘ identified by ‘oracle‘; 
Query OK, 0 rows affected (0.03 sec)
 
3. 使用者改密碼
mysql> set password for andy02=password(‘mysql‘);
mysql> flush privileges;

4.刪除使用者
--查看當前系統中已存在的使用者  
mysql> select user,host,Password from mysql.user;  
--使用drop user命令刪除使用者  
mysql> drop user ‘andy02‘@‘%‘;    注意:如果不指定 @‘%‘ ,預設預設,則刪除的是 ‘%‘ 。
mysql> select user,host,Password from mysql.user where user like ‘andy%‘; 
Empty set (0.00 sec)  

5. 重新命名帳戶
--rename user命令  
mysql> rename user ‘andy02‘@‘%‘ to ‘andy01‘@‘%‘; 
Query OK, 0 rows affected (0.00 sec)
--檢查  
mysql> select user,host,Password from mysql.user where user like ‘andy%‘;  

二:許可權管理

注意:mysql的許可權相對於oracle而言,相對簡單,而且也沒有涉及到角色方面的定義與配置 

--grant命令文法 

1. 許可權種類  
(這裡直接查看,root賬戶所有的許可權)

mysql> select * from mysql.user where user=‘root‘ and host=‘%‘\G;
*************************** 1. row ***************************
                  Host: %
                  User: root
              Password: *2447D497B9A6A15F2776055CB2D1E9F86758182F
           Select_priv: Y
           Insert_priv: Y
           Update_priv: Y
           Delete_priv: Y
           Create_priv: Y
             Drop_priv: Y
           Reload_priv: Y
         Shutdown_priv: Y
          Process_priv: Y
             File_priv: Y
            Grant_priv: Y
       References_priv: Y
            Index_priv: Y
            Alter_priv: Y
          Show_db_priv: Y
            Super_priv: Y
 Create_tmp_table_priv: Y
      Lock_tables_priv: Y
          Execute_priv: Y
       Repl_slave_priv: Y
      Repl_client_priv: Y
      Create_view_priv: Y
        Show_view_priv: Y
   Create_routine_priv: Y
    Alter_routine_priv: Y
      Create_user_priv: Y
            Event_priv: Y
          Trigger_priv: Y
Create_tablespace_priv: Y
              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: 
      password_expired: N
1 row in set (0.00 sec)

2. 許可權存放

MySQL 伺服器通過 MySQL 許可權表來控制使用者對資料庫的訪問,MySQL 許可權表存放在 mysql 資料庫裡,由 mysql_install_db 指令碼初
始化。這些 MySQL 許可權表分別 user,db,table_priv,columns_priv 和 host。

user 許可權表:記錄允許串連到伺服器的使用者帳號資訊,裡面的許可權是全域級的。
db 許可權表:記錄各個帳號在各個資料庫上的操作許可權。
table_priv 許可權表:記錄資料表級的操作許可權。
columns_priv 許可權表:記錄資料列級的操作許可權。
host 許可權表:配合 db 許可權表對給定主機上資料庫級操作許可權作更細緻的控制。這個許可權表不受 GRANT 和 REVOKE 語句的影響。

3. 許可權範圍 priv_level: 
    *
  | *.*
  | db_name.*
  | db_name.tbl_name
  | tbl_name
  | db_name.routine_name

4. 授權
mysql>grant all privileges on *.* to ‘andy01‘@‘%‘;    (--WITH GRANT OPTION 是否傳遞,預設為不傳遞)
mysql>flush privileges;  

5. 查看目前使用者的許可權
mysql> show grants;

6. 查看指定使用者的許可權

mysql> show grants for ‘andy01‘@‘%‘; 

 

-- revoke 收回許可權

撤銷與授權的許可權方式基本類似,這裡不做討論。

MySQL 使用者管理與許可權管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.