權(quán)限是mysql中一個非常重要的功能,我們針對不用的用戶會設(shè)置不同的權(quán)限,這樣可以保證mysql數(shù)據(jù)庫安全的運(yùn)行,下面我來分享一些mysql權(quán)限參考介紹.
1 授權(quán)表范圍列的大小寫敏感性,如下:
- +--------------+-----+-----+---------+----+-----------+------------+
- | 列 |Host |User |Password |Db |Table_name |Column_name |
- | 大小寫敏感性 |No |Yes |Yes |Yes |Yes |No |
- +--------------+-----+-----+---------+----+-----------+------------+
2 授權(quán)表權(quán)限列,授權(quán)表還包含權(quán)限列,他們指出在范圍列中指定的用戶擁有何種權(quán)限.
- +------------+-----------------+----------------------+
- | 權(quán)限 | 列 | 作用域 |
- +------------+-----------------+----------------------+
- | select | Select_priv | 表 |
- | insert | Insert_priv | 表 |
- | update | Update_priv | 表 |
- | delete | Delete_priv | 表 |
- | index | Index_priv | 表 |
- | alter | Alter_priv | 表 |
- | create | Create_priv | 數(shù)據(jù)庫、表或索引 |
- | drop | Drop_priv | 數(shù)據(jù)庫或表 |
- | grant | Grant_priv | 數(shù)據(jù)庫或表 |
- | references | References_priv | 數(shù)據(jù)庫或表 |
- | reload | Reload_priv | 服務(wù)器管理 |
- | shutdown | Shutdown_priv | 服務(wù)器管理 |
- | process | Process_priv | 服務(wù)器管理 |
- | file | File_priv | 在服務(wù)器上的文件存取 |
- +------------+-----------------+----------------------+
3.數(shù)據(jù)庫和表權(quán)限.
下列權(quán)限運(yùn)用于數(shù)據(jù)庫和表上的操作.
- ALTER
- //允許使用ALTER TABLE語句
- CREATE
- //允許創(chuàng)建數(shù)據(jù)庫和表,但不允許創(chuàng)建索引。
- DELETE
- //允許從表中刪除現(xiàn)有記錄。
- DROP
- //允許刪除(拋棄)數(shù)據(jù)庫和表,但不允許刪除索引。
- INDEX
- //允許創(chuàng)建并刪除索引。
- REFERENCES
- //目前不用。
- SELECT
- //允許使用SELECT語句從表中檢索數(shù)據(jù)。對不涉及表的SELECT語句就不必要,如SELECT NOW()或SELECT 4/2 //Vevb.com
- UPDATE
- //允許修改表中的已有的記錄。
管理權(quán)限:下列權(quán)限運(yùn)用于控制服務(wù)器或用戶授權(quán)能力的操作的管理性操作.
FILE:允許讀寫服務(wù)器主機(jī)上的文件,該權(quán)限不應(yīng)該隨便授予,它很危險,雖然已經(jīng)授予讀寫權(quán)限,但所寫的文件必須不是現(xiàn)存的文件,這防止你迫使服務(wù)器重寫重要文件,如/etc/passwd或?qū)儆趧e人的數(shù)據(jù)庫的數(shù)據(jù)目錄.
如果授權(quán)FILE權(quán)限,確保UNIX不以root用戶運(yùn)行服務(wù)器,因?yàn)閞oot可在文件系統(tǒng)的任何地方創(chuàng)建新文件,如果你以一個非特權(quán)用戶運(yùn)行服務(wù)器,服務(wù)器只能該給用戶能訪問的目錄中創(chuàng)建文件.
GRANT:允許將自己的權(quán)限授予別人,包括GRANT.
PROCESS:允許通過使用SHOW PROCESS語句或mysqladmin process命令查看服務(wù)器內(nèi)正在運(yùn)行的線程(進(jìn)程)的信息,這個權(quán)限也允許你用KILL語句或mysqladmin kill命令殺死線程,你同樣可以看到或殺死你自己的線程,PROCESS權(quán)限賦予了你對任何線程做這些事情的權(quán)力.
RELOAD:允許執(zhí)行大量的服務(wù)器管理操作,你可以發(fā)出FLUSH語句,你也能執(zhí)行mysqladmin的reload、refresh、flush-hosts、flush-logs、flush-privileges和flush-tables等命令.
SHUTDOWN:允許用mysqladmin shutdown關(guān)閉服務(wù)器.
用戶權(quán)限,實(shí)例例如:
指定用戶訪問,設(shè)置訪問密碼,指定訪問主機(jī).
① 設(shè)置訪問單個數(shù)據(jù)庫權(quán)限
01.mysql>grant all privileges on test.* to 'root'@'%';(說明:設(shè)置用戶名為root,密碼為空,可訪問數(shù)據(jù)庫test)
②設(shè)置訪問全部數(shù)據(jù)庫權(quán)限
01.mysql>grant all privileges on *.* to 'root'@'%';(說明:設(shè)置用戶名為root,密碼為空,可訪問所有數(shù)據(jù)庫*)
③設(shè)置指定用戶名訪問權(quán)限
01.mysql>grant all privileges on *.* to 'lanping'@'%';(說明:設(shè)置指定用戶名為 lanping,密碼為空,可訪問所有數(shù)據(jù)庫*)
④設(shè)置密碼訪問權(quán)限
01.mysql>grant all privileges on *.* to 'lanping'@'%' IDENTIFIED BY ' lanping';(說明:設(shè)置指定用戶名為 lanping,密碼為 lanping,可訪問所有數(shù)據(jù)庫*)
⑤設(shè)置指定可訪問主機(jī)權(quán)限
01.mysql>grant all privileges on *.* to ' lanping '@'10.2.1.11';說明:設(shè)置指定用戶名為 lanping ,可訪問所有數(shù)據(jù)庫*,只有127.0.0.1這臺機(jī)器有權(quán)限訪問
REVOKE
REVOKE和作用和GRANT相反,語法格式為:REVOKE privileges ON 數(shù)據(jù)庫名[.表名] FROM user_name
例如:創(chuàng)建用戶Bob,密碼為“bob”,但不給他任何權(quán)限:
GRANT usage on * to Bob identified by ’bob’;
授予Bob在books數(shù)據(jù)庫中的查詢和插入權(quán)限:
GRANT select, insert on books.* to Bob;
取消Bob在books數(shù)據(jù)庫中的所有權(quán)限:
REVOKE all on books.* from Bob;
注:需要指出的是,REVOKE all...僅僅是回收用戶的權(quán)限,并不刪除用戶,在MySQL中,用戶信息存放在mysql.User中,MySQL可以通過DROP USER來徹底刪除一個用戶,其用法為:
DROP USER user_name;
例如,要刪除用戶Bob,可以用:DROP USER Bob;
新聞熱點(diǎn)
疑難解答
圖片精選