久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

mysql 中怎么實現(xiàn)權限控制

157次閱讀
沒有評論

共計 2292 個字符,預計需要花費 6 分鐘才能閱讀完成。

本篇文章給大家分享的是有關 mysql 中怎么實現(xiàn)權限控制,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。

概述

mysql 權限控制在不同的上下文和不同的操作水平上都可以進行控制,他們包括如下幾個
** 管理權限可以允許用戶管理 mysql server 的操作。這些權限控制是全局的,不是針對某個特定的數(shù)據(jù)庫的
** 數(shù)據(jù)庫權限對應到一個數(shù)據(jù)庫和里面的對象。這些權限被用來控制特定的數(shù)據(jù)庫或者全局的,他們能夠應用到所有的數(shù)據(jù)庫
** 數(shù)據(jù)庫對象的權限對應到數(shù)據(jù)庫表,索引,視圖,和存儲過程,可以對數(shù)據(jù)庫內(nèi)部的某個對象進行授權控制。

權限的存儲位置

** 賬號權限信息被存儲在 mysql 數(shù)據(jù)庫的 user,db,tables_priv ,columns_priv ,procs_priv 表中。
** mysql 啟動的時候讀取這些信息到內(nèi)存中去,或者在權限變更生效的時候,重新讀取到內(nèi)存中去

mysql 賬號管理

mysql 賬號名字由用戶名和主機名組成。這樣可以允許同已用戶在不同主機上分別控制權限。這一部分描述如何分配賬戶名字包括特定的值和模糊
匹配規(guī)則,在 sql 語句中,create user, grant ,set password 的時候,會用到這些規(guī)則:
–‘user_name’@’host_name’就是賬戶名字的語法規(guī)則
– 僅僅包含用戶名的賬號等同于‘username’@’%’
– 如果用戶名是合法的字符,用戶名和主機名不必用引號引起來。在你的用戶名包含’-‘這樣的字符的時候,需要用引號引起來?;蛘哒f主機名有
  通配符的時候需要引起來。
– 引號可以用單引號也可以用雙引號。
– 主機和用戶名必須分別被引號括起來,如果必須要括的話。
mysql 在 mysql 數(shù)據(jù)庫中分別用兩個列去存儲用戶名和主機名:
– 用戶表每個賬戶一行記錄,此表也表示了賬號有哪些全局權限。
– 其他授權表表示了賬號擁有的數(shù)據(jù)庫和數(shù)據(jù)庫內(nèi)的對象。這些表都有用戶名和主機列。每行的賬戶信息和 user 表的賬戶信息是奕揚的。
用戶名和主機名可以包含特殊字符或者通配符,下面是這些規(guī)則:
用戶名要么是一個非空字符串字面上必須匹配連接字符串中指名的用戶名,或者一個空字符串就會匹配人戶用戶名。空用戶名是一個匿名用戶。
主機名也可以又好多形式,或者通配符:
– 主機名可以是一個 IP 地址或者一個 localhost 樣的字符串。
– % 和 sql 中的 like 的效果是一樣的。例如’%.mysql.com’就會匹配 a.mysql.com.

權限控制階段 1:連接校驗

當你嘗試去連接到 mysql 服務器,服務器基于下面兩點條件去接受或者拒絕連接:
– 你的身份標識以及正確的密碼
– 你的賬號是否被鎖定了
服務器先校驗密碼是否正確,然后校驗是否鎖定。任何一個步驟失敗,服務器將會拒絕連接。如果通過校驗,服務器接受連接,然后進入第二階段并且等候請求。
認證檢查先檢查 user 表的三個列,host,user,password。鎖定狀態(tài)是在 user 表的 account_locked 列中記錄著的。賬號鎖定狀態(tài)可以通過 alter user 語句來變更。
你的身份由兩部分來組成,你連接的客戶主機以及你的 mysql 用戶名。如果用戶名不空,則必須全字符匹配才可以,如果用戶名是空的,則匹配任何用戶。如果用戶表匹配到一個空用戶名,這個用戶被認為是一個匿名用戶,二不是客戶實際提供的。這意味著空用戶名是用來進一步檢查用的也就是階段 2.
密碼可以為空,這個不是一個通配符,不意味著匹配任何密碼。它的意思是用戶必須無密碼連接。如果服務起授權一個客戶都安使用一個插件,這樣
該插件實現(xiàn)的認證體系或許沒有用密碼列。在這樣的情況下,外部密碼也可以用來去認證 mysql 服務器。
非空密碼都是加密存儲的,mysql 沒有存儲任何明文密碼。并且用戶提供的密碼也是被加密的。這個加密的密碼后來在連接過程中,來檢查密碼是否正確。
從 mysql 的觀點來看,加密的密碼才是真正的密碼,所以不要告訴任何人這個加密的密碼。
如果在 user 表中有多行被匹配,服務器必須決定用哪一個,它的規(guī)則是這樣的:
– 任何時候服務器讀取用戶表到內(nèi)存中的時候,它會排序。
– 服務器檢查的伺候服務器按行順序去檢查
– 服務器使用第一個匹配的行
服務器排序的規(guī)則是無通配符的在前面,統(tǒng)配的在后面。

權限控制階段 2:請求校驗

當通過了連接校驗,你和服務器建立了連接后,服務器進入權限控制的第二個階段。你的每個請求,服務器決定出你想做什么操作,然后檢查你是否有
權限去做。此時,grant 表的 privilege 列就該出場了。這些列可以出自 user,db,tables_priv,columns_priv,procs_priv。不再細講這些表了。

什么時候去權限變更生效

當服務器啟動的時候,grant 表的數(shù)據(jù)被讀入內(nèi)存。如果你使用賬戶管理語句去更新權限控制,服務器將會知道這些變更,然后重新讀取它們。如果你
直接用 sql 語句去更新這些表,你的變更不會生效,直到你重新啟動服務器或者你告訴服務器去重建緩存。
你可以通過執(zhí)行一個刷新權限操作來通知服務器重建緩存。下面三個語句都可以達到效果:
– flush_privileges
– mysqladmin_flush-privileges
– mysqladmin_reload
如果啟動參數(shù)是 –skip-grant-tables,那么服務器不再校驗任何權限,很不安全。

以上就是 mysql 中怎么實現(xiàn)權限控制,丸趣 TV 小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-08-03發(fā)表,共計2292字。
轉(zhuǎn)載說明:除特殊說明外本站除技術相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 贞丰县| 达州市| 油尖旺区| 泰来县| 大姚县| 社会| 通渭县| 久治县| 黎平县| 丰顺县| 普陀区| 日土县| 绥滨县| 喜德县| 寿宁县| 商洛市| 大石桥市| 宣汉县| 玉树县| 孙吴县| 宜阳县| 康定县| 石柱| 伊金霍洛旗| 星座| 张家口市| 蛟河市| 哈尔滨市| 松原市| 南汇区| 双辽市| 木兰县| 汾阳市| 正蓝旗| 谢通门县| 阳信县| 大兴区| 勐海县| 左权县| 吉木乃县| 宁德市|