萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql中權限參數說明

mysql中權限參數說明

權限是mysql中一個非常重要的功能,我們針對不用的用戶會設置不同的權限,這樣可以保證mysql數據庫安全的運行,下面我來分享一些mysql權限參考介紹。


1 授權表范圍列的大小寫敏感性
+--------------+-----+-----+---------+----+-----------+------------+
| 列           |Host |User |Password |Db  |Table_name |Column_name |
| 大小寫敏感性 |No   |Yes  |Yes      |Yes |Yes        |No          |
+--------------+-----+-----+---------+----+-----------+------------+

2 授權表權限列
  授權表還包含權限列,他們指出在范圍列中指定的用戶擁有何種權限。
+------------+-----------------+----------------------+
| 權限       | 列              | 作用域               |
+------------+-----------------+----------------------+
| select     | Select_priv     | 表                   |
| insert     | Insert_priv     | 表                   |
| update     | Update_priv     | 表                   |
| delete     | Delete_priv     | 表                   |
| index      | Index_priv      | 表                   |
| alter      | Alter_priv      | 表                   |
| create     | Create_priv     | 數據庫、表或索引     |
| drop       | Drop_priv       | 數據庫或表           |
| grant      | Grant_priv      | 數據庫或表           |
| references | References_priv | 數據庫或表           |
| reload     | Reload_priv     | 服務器管理           |
| shutdown   | Shutdown_priv   | 服務器管理           |
| process    | Process_priv    | 服務器管理           |
| file       | File_priv       | 在服務器上的文件存取 |
+------------+-----------------+----------------------+

3.數據庫和表權限
下列權限運用於數據庫和表上的操作。

ALTER
  允許使用ALTER TABLE語句
CREATE
  允許創建數據庫和表,但不允許創建索引。
DELETE
  允許從表中刪除現有記錄。
DROP
  允許刪除(拋棄)數據庫和表,但不允許刪除索引。
INDEX
  允許創建並刪除索引。
REFERENCES
  目前不用。
SELECT
  允許使用SELECT語句從表中檢索數據。對不涉及表的SELECT語句就不必要,如SELECT NOW()或SELECT 4/2。
UPDATE
  允許修改表中的已有的記錄。

管理權限
下列權限運用於控制服務器或用戶授權能力的操作的管理性操作。

FILE
  允許讀寫服務器主機上的文件。該權限不應該隨便授予,它很危險。
  雖然已經授予讀寫權限,但所寫的文件必須不是現存的文件,
  這防止你迫使服務器重寫重要文件,如/etc/passwd或屬於別人的數據庫的數據目錄。
  如果授權FILE權限,確保UNIX不以root用戶運行服務器,因為root可在文件系統的任何地方創建新文件。
  如果你以一個非特權用戶運行服務器,服務器只能該給用戶能訪問的目錄中創建文件。

GRANT
  允許將自己的權限授予別人,包括GRANT。
PROCESS www.111cn.net
  允許通過使用SHOW PROCESS語句或mysqladmin process命令查看服務器內正在運行的線程(進程)的信息。
  這個權限也允許你用KILL語句或mysqladmin kill命令殺死線程。
  你同樣可以看到或殺死你自己的線程。
  PROCESS權限賦予了你對任何線程做這些事情的權力。

RELOAD
 允許執行大量的服務器管理操作。
 你可以發出FLUSH語句,
 你也能執行mysqladmin的reload、refresh、flush-hosts、flush-logs、flush-privileges和flush-tables等命令。

SHUTDOWN
 允許用mysqladmin shutdown關閉服務器。


用戶權限

實例:

例如:

指定用戶訪問,設置訪問密碼,指定訪問主機。

① 設置訪問單個數據庫權限

01.mysql>grant all privileges on test.* to 'root'@'%';(說明:設置用戶名為root,密碼為空,可訪問數據庫test)

②設置訪問全部數據庫權限

01.mysql>grant all privileges on *.* to 'root'@'%';(說明:設置用戶名為root,密碼為空,可訪問所有數據庫*)

③設置指定用戶名訪問權限

01.mysql>grant all privileges on *.* to 'lanping'@'%';(說明:設置指定用戶名為 lanping ,密碼為空,可訪問所有數據庫*)

④設置密碼訪問權限

01.mysql>grant all privileges on *.* to 'lanping'@'%' IDENTIFIED BY ' lanping';(說明:設置指定用戶名為 lanping ,密碼為 lanping ,可訪問所有數據庫*)

⑤設置指定可訪問主機權限

01.mysql>grant all privileges on *.* to ' lanping '@'10.2.1.11';說明:設置指定用戶名為 lanping ,可訪問所有數據庫*,只有127.0.0.1這台機器有權限訪問
 


REVOKE

REVOKE和作用和GRANT相反,語法格式為:

REVOKE privileges ON 數據庫名[.表名] FROM user_name

例如:

創建用戶Bob,密碼為“bob”,但不給他任何權限:

GRANT usage on * to Bob identified by ’bob’;
 
授予Bob在books數據庫中的查詢和插入權限:

GRANT select, insert on books.* to  Bob;

取消Bob在books數據庫中的所有權限:

REVOKE all on books.* from Bob;

注:需要指出的是,REVOKE all...僅僅是回收用戶的權限,並不刪除用戶。在MySQL中,用戶信息存放在mysql.User中。MySQL可以通過DROP USER來徹底刪除一個用戶,其用法為:

DROP USER user_name; 

例如,要刪除用戶Bob,可以用:

DROP USER Bob;

copyright © 萬盛學電腦網 all rights reserved