日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

mysql權(quán)限管理

系統(tǒng) 2045 0

一、權(quán)限

命令標(biāo)識

授權(quán)表中對應(yīng)的列

說明

CREATE

Create_priv

創(chuàng)建數(shù)據(jù)庫、表或索引

CREATE?TEMPORARY?TABLES

Create_tmp_table_priv

創(chuàng)建臨時數(shù)據(jù)表

CREATE?ROUTINE

Create_routine_priv

創(chuàng)建函數(shù)或存儲

CREATE?VIEW

Create_view_priv

創(chuàng)建視圖

CREATE?USER

Create_user_priv

創(chuàng)建用戶

EXECUTE

Execute_priv

執(zhí)行函數(shù)或存儲過程

INDEX

Index_priv

建立索引

REFERENCES

References_priv

建立約束

DROP

Drop_priv

刪除表

SELECT

Select_priv

查詢數(shù)據(jù)

INSERT

Insert_priv

插入數(shù)據(jù)

UPDATE

Update_priv

更新數(shù)據(jù)

DELETE

Delete_priv

刪除數(shù)據(jù)

LOCK?TABLES

Lock_tables_priv

鎖定表格

SHOW?DATABASES

Show_db_priv

列出數(shù)據(jù)庫

SHOW?VIEW

Show_view_priv

列出視圖

USAGE

?

只有登錄權(quán)限,其他權(quán)限都沒有

ALL

?

所有權(quán)限,除了WITH?GRANT?OPTION

ALTER

Alter_priv

更改數(shù)據(jù)表

ALTER?ROUTINE

Alter_routine_priv

更改函數(shù)或存儲過程

PROCESS

Process_priv

顯示連接進程和中斷連接進程

FILE

File_priv

載入文件

RELOAD

Reload_priv

可以用FLUSH

REPLICATION?CLIENT

Repl_client_priv

可以檢查Masters和Slaves

REPLICATION?SLAVE

Repl_slave_priv

在Slave里的特殊權(quán)限

SHUTDOWN

Shutdown_priv

關(guān)閉MySQL

WITH?GRANT?OPTION

Grant_priv

可以將自己擁有的權(quán)限賦給其他用戶

SUPER

Super_priv

執(zhí)行kill線程,change?master、purge?master?logs、set?global等命令的權(quán)限

create?tablespace

Create_tablespace_priv?

創(chuàng)建表空間

Event

Event_priv?

確定用戶能否創(chuàng)建、修改和刪除事件

Trigger

Trigger_priv?

確定用戶能否創(chuàng)建和刪除觸發(fā)器

?

二、權(quán)限級別

1、global?level?全局權(quán)限控制,所有的信息都保存在mysql.user表中。

2、database?level?作用域為指定某個數(shù)據(jù)庫中的所有對象,所有權(quán)限信息保存在mysql.db中。當(dāng)執(zhí)行g(shù)rant命令時,通過“database.*”來限定作用域為database整個數(shù)據(jù)庫;也可以通過use命令選定授權(quán)的數(shù)據(jù)庫,然后通過“*”來限定作用域,這樣授權(quán)的作用域?qū)嶋H上就是當(dāng)前選定的整個數(shù)據(jù)庫。

3、table?level?作用范圍是授權(quán)語句中指定數(shù)據(jù)庫的指定表(database.table),權(quán)限信息保存在tables_priv中。

4、column?level?作用域為某個指定的列,權(quán)限信息保存在columns_priv中。column?level級別的權(quán)限僅有insert、select、update這三種。語法格式:grant?select(id,value)?on?test.t2?to?‘a(chǎn)bc’@‘%’。給abc用戶授予?test數(shù)據(jù)庫t2表的id、value列select權(quán)限.

5、routine?level?針對的主要對象時procedure和function。目前暫時只有execute和alter?routine兩種。語法格式:grant?execute?on?test.p1?to?'abc'?@'%';

6、with?grant?option。在授權(quán)時加上此命令,被授權(quán)用戶有傳遞權(quán)限的權(quán)限。

三、權(quán)限查看和更改

1、新加權(quán)限或者用戶。?

??GRANT?權(quán)限?ON?庫名.表名?TO?新用戶名@主機名?IDENTIFIED?BY?‘密碼‘;

??例:grant?select,insert,update,delete?on?*.*?to?test1@"%"?Identified?by?"abc";新加的用戶名為test1?,密碼為abc,對所有表有增刪查改的權(quán)限,在任何主機上可以登錄。

?

2、查看權(quán)限。

???使用show?grants?語句查看指定賬戶的權(quán)限;例如,要檢查Host和User值分別為pc84.example.com和bob的賬戶所授予的權(quán)限,應(yīng)通過語句:

mysql>?SHOW?GRANTS?FOR?'bob'@'pc84.example.com';

?

3、更改權(quán)限。

???若通過直接修改權(quán)限表來更改權(quán)限,則修改完后都必須要執(zhí)行“flush?privileges”,通知mysql重新加載MySQL的權(quán)限信息;如果通過grant、revoke或drop?user命令來修改權(quán)限,則不需要執(zhí)行“flush?privileges”命令。

?

4、權(quán)限更改何時生效

當(dāng)mysqld啟動時,所有授權(quán)表的內(nèi)容被讀進內(nèi)存并且從此時生效。

當(dāng)服務(wù)器注意到授權(quán)表被改變了時,現(xiàn)存的客戶端連接有如下影響:

·?表和列權(quán)限在客戶端的下一次請求時生效。

·?數(shù)據(jù)庫權(quán)限改變在下一個USE?db_name命令生效。

·?全局權(quán)限的改變和密碼改變在下一次客戶端連接時生效。

如果用GRANT、REVOKE或SET?PASSWORD對授權(quán)表進行修改,服務(wù)器會注意到并立即重新將授權(quán)表載入內(nèi)存。

如果你手動地修改授權(quán)表(使用INSERT、UPDATE或DELETE等等),你應(yīng)該執(zhí)行mysqladmin?flush-privileges或mysqladmin?reload告訴服務(wù)器再裝載授權(quán)表,否則你的更改將不會生效,除非你重啟服務(wù)器。

如果你直接更改了授權(quán)表但忘記重載,重啟服務(wù)器后你的更改方生效。這樣可能讓你迷惑為什么你的更改沒有什么變化!

?

?

5、修改密碼

當(dāng)使用setpassword、insert、update更改密碼時,必須使用PASSWORD()函數(shù)加密密碼。若果不使用PASSWORD()函數(shù),密碼將不工作。

例如,下面的語句設(shè)置密碼,但沒能加密,因此用戶后面不能連接:

????mysql>?SET?PASSWORD?FOR?'abe'@'host_name'?=?'eagle';

相反,應(yīng)這樣設(shè)置密碼:

mysql>?SET?PASSWORD?FOR?'abe'@'host_name'?=?PASSWORD('eagle');

當(dāng)使用GRANT或CREATE?USER語句或mysqladmin?password命令指定密碼時,不需要PASSWORD()函數(shù),它們會自動使用PASSWORD()來加密密碼。

四、權(quán)限表列值的規(guī)則

1、user?、host?、db表中值的規(guī)則

·?通配符字符“%”和“_”可用于表的Host和Db列。它們與用LIKE操作符執(zhí)行的模式匹配操作具有相同的含義。如果授權(quán)時你想使用某個字符,必須使用反斜現(xiàn)引用。例如,要想在數(shù)據(jù)庫名中包括下劃線(‘_’),在GRANT語句中用‘\_’來指定。

·在db表的'%'Host值意味著“任何主機”,在db表中空Host值意味著“對進一步的信息咨詢host表”。

·在host表的'%'或空Host值意味著“任何主機”。

·在三個表中的'%'或空Db值意味著“任何數(shù)據(jù)庫”。

·在user、db表中的空User值匹配匿名用戶

?

2、tables_priv和columns_priv表中值得規(guī)則

·通配符“%”并“_”可用在使用在兩個表的Host列。

·在兩個表中的'%'或空Host意味著“任何主機”。

·在兩個表中的Db、Table_name和Column_name列不能包含通配符或空。

3、mysql.host表的特殊點

mysql.host不是通過grant或revoke權(quán)限來授予或去除的,必須手工通過insert、update和delete命令來修改其中的數(shù)據(jù)。其中的權(quán)限無法單獨生效,必須與mysql.db權(quán)限表一起才能生效。當(dāng)mysql.db中的信息不完整時,采取訪問mysql.host。

當(dāng)想在db表的范圍之內(nèi)擴展一個條目時,就會用到host表。舉例來說,如果某個db允許通過多個主機訪問的話,那么超級用戶就可以讓db表內(nèi)將host列為空,然后用必要的主機名填充host表。

五、訪問控制

階段1:連接核實

當(dāng)你試圖連接MySQL服務(wù)器時,服務(wù)器基于你的身份以及你是否能通過供應(yīng)正確的密碼驗證身份來接受或拒絕連接。如果不是,服務(wù)器完全拒絕你的訪問,否則,服務(wù)器接受連接,然后進入階段2并且等待請求。

你的身份基于2個信息:

·你從那個主機連接

·你的MySQL用戶名

身份檢查使用3個user表(Host,?User和Password)范圍列執(zhí)行。服務(wù)器只有在user表記錄的Host和User列匹配客戶端主機名和用戶名并且提供了正確的密碼時才接受連接。

?

階段2:請求核實

一旦你建立了連接,服務(wù)器進入訪問控制的階段2。對在此連接上進來的每個請求,服務(wù)器檢查你想執(zhí)行什么操作,然后檢查是否有足夠的權(quán)限來執(zhí)行它。這正是在授權(quán)表中的權(quán)限列發(fā)揮作用的地方。這些權(quán)限可以來自user、db、host、tables_priv或columns_priv表。

?

六、query? 處理權(quán)限校驗流程

mysql權(quán)限管理

七、常做操作所需權(quán)限

1、備份

備份用戶會通過mysqldump來做備份,一般只需要用到select和lock?tables?兩項權(quán)限。如果使用帶-tab選項的mysqldump來做tab分界符文件的導(dǎo)出,或者是用select?into?outfile,那么還需要一個file權(quán)限。

例:grant?select,lock?tables,file?on?*.*?to?backup@localhost

為了保證許多備份操作的一致性,還會用到flush?tables?with?read?lock,所以還需要reload權(quán)限。

?

2、操作和監(jiān)控

維護系統(tǒng)或修復(fù)故障需要用到 kill show 命令,還需要關(guān)閉服務(wù)器。所以需要用到 process shutdown 權(quán)限。

?

?

?

mysql權(quán)限管理


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 光泽县| 新乡县| 巴里| 丰顺县| 米脂县| 商都县| 诸城市| 来宾市| 长顺县| 林芝县| 嘉荫县| 嘉义县| 宿松县| 屏东县| 潞城市| 吴川市| 绍兴县| 双流县| 锡林郭勒盟| 巴里| 遂宁市| 土默特左旗| 佳木斯市| 涡阳县| 永川市| 玉山县| 泰和县| 宁安市| 岢岚县| 浙江省| 达州市| 遂昌县| 休宁县| 轮台县| 巴楚县| 黑水县| 湖口县| 中阳县| 湘潭县| 阜新| 高安市|